Как показать данные года в горизонтальных линиях 2 графиков?

У меня вопрос по сюжетам. У меня есть фрейм данных с именем log_return_data. Вот снимок кадра данных:

enter image description here

Я хочу построить 3 графика каждого возврата на 1 графике и в соответствующее время (в индексе столбца). Вот код, который я написал:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt


fig1, axis = plt.subplots(3,1,figsize=(9,6),dpi=100)

log_return_data['HPQ_Returns'][1377:].plot(ax=axis[0], title='HPQ', fontsize=8, sharex=True, linewidth=0.6)
log_return_data['MSFT_Returns'][1377:].plot(ax=axis[1], title='MSFT', fontsize=8,sharex=True, linewidth=0.6)
log_return_data['INTC_Returns'][1377:].plot(ax=axis[2], title='INTC', fontsize=8,sharex=True, linewidth=0.6)

plt.savefig('returns')

И это результат:

enter image description here

Однако я хочу, чтобы данные года были не только на последнем графике (данные INTC), но также и в HPQ и MSFT (2 первых графика). Есть ли хоть какое-то решение этой проблемы? Спасибо.

##Редактировать : С помощью 1-го ответчика я меняю код на:

log_return_data['HPQ_Returns'][1377:].plot(ax=axis[0], title='HPQ', fontsize=8, linewidth=0.6)

И это результат: enter image description here

Как удалить 3 заголовка «Дата» по оси X каждого графика?

Анализ настроения постов в Twitter с помощью Python, Tweepy и Flair
Анализ настроения постов в Twitter с помощью Python, Tweepy и Flair
Анализ настроения текстовых сообщений может быть настолько сложным или простым, насколько вы его сделаете. Как и в любом ML-проекте, вы можете выбрать...
7 лайфхаков для начинающих Python-программистов
7 лайфхаков для начинающих Python-программистов
В этой статье мы расскажем о хитростях и советах по Python, которые должны быть известны разработчику Python.
Установка Apache Cassandra на Mac OS
Установка Apache Cassandra на Mac OS
Это краткое руководство по установке Apache Cassandra.
Сертификатная программа "Кванты Python": Бэктестер ансамблевых методов на основе ООП
Сертификатная программа "Кванты Python": Бэктестер ансамблевых методов на основе ООП
В одном из недавних постов я рассказал о том, как я использую навыки количественных исследований, которые я совершенствую в рамках программы TPQ...
Создание персонального файлового хранилища
Создание персонального файлового хранилища
Вы когда-нибудь хотели поделиться с кем-то файлом, но он содержал конфиденциальную информацию? Многие думают, что электронная почта безопасна, но это...
Создание приборной панели для анализа данных на GCP - часть I
Создание приборной панели для анализа данных на GCP - часть I
Недавно я столкнулся с интересной бизнес-задачей - визуализацией сбоев в цепочке поставок лекарств, которую могут просматривать врачи и...
1
0
29
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Поскольку временной индекс одинаков для всех трех графиков, вы можете использовать sharex=False во всех трех вызовах plot (что используется по умолчанию), и вы должны получить все xticks и при этом правильно выровнять графики:

log_return_data['HPQ_Returns'][1377:].plot(ax=axis[0], title='HPQ', fontsize=8, sharex=False, linewidth=0.6)
log_return_data['MSFT_Returns'][1377:].plot(ax=axis[1], title='MSFT', fontsize=8,sharex=False, linewidth=0.6)
log_return_data['INTC_Returns'][1377:].plot(ax=axis[2], title='INTC', fontsize=8,sharex=False, linewidth=0.6)

sharex=True будет генерировать другое выравнивание графиков, когда у вас есть разные ряды с разными временными индексами, которые не совпадают идеально, но это не ваш случай.

Изменить после комментариев:

Поскольку теперь заголовки перекрываются как с меткой оси, так и с метками осей, вы можете попробовать следующее перед plt.savefig():

# This removes the 'Date' label from every axis except the last.
for ax in axis[:-1]:
    ax.set_xlabel('')

# This rearranges the layout (the title still would overlap with the tick labels).
plt.tight_layout()

Спасибо за ваше решение. Однако это работает хорошо, теперь заголовок оси x перекрывается с заголовком каждого графика. Знаете ли вы, как удалить заголовок оси X и сохранить данные по оси X? Я загрузил изображение нового сюжета в вопросе выше.

mht 17.05.2022 15:37

@mht я отредактировал свой ответ, проверьте, работает ли он

user2246849 17.05.2022 15:42

Другие вопросы по теме