Как сделать так, чтобы оси занимали несколько вспомогательных участков при использовании графика даты и времени панд?

1

Я хотел бы создать (суб) график с двумя строками и двумя столбцами, где график в нижней строке занимает обе оси.

Поскольку я использую сюжет из pandas datetime (я думаю), я не смог использовать это решение.

fig, axes = plt.subplots(nrows=2, ncols=2)

df1.set_index('Date').plot(ax=axes[0,0])
df2.set_index('Date').plot(ax=axes[0,1])
df3.set_index('Date').plot(ax=axes ??? ) 

Как мне нужно назначить оси (если это вообще возможно), чтобы получить что-то вроде этого:

Изображение 174551

  • 0
    Тогда не используйте сюжет с пандами. Вы можете просто использовать matplotlib с чем-то вроде plot_date(df3.index, df3[0], '-') . Если бы вы дали минимальный воспроизводимый пример , я бы показал это в ответе.
Теги:
pandas
matplotlib
datetime
subplot

2 ответа

2
Лучший ответ

Вы можете сделать это, например:

df = pd.DataFrame( {'date':['2010-01-01','2010-01-02','2010-01-03'],'a1':[5,4,3],'a2':[6,2,9]})
df['date'] = pd.to_datetime(df['date'])
import matplotlib.pyplot as plt
fig = plt.figure()

ax1 = plt.subplot(221)
ax2 = plt.subplot(222)
ax3 = plt.subplot(212)

df.plot(x="date", y='a1',ax=ax1)
df.plot(x="date", y='a2',ax=ax2)
df.plot(x="date", y=['a1','a2'], ax=ax3)

plt.tight_layout()
plt.show()

Изображение 174551

  • 0
    Perfekt @Joe! Я не думал о "просто", используя df.plot (x, y, ax), спасибо
  • 0
    Рад помочь :) @ rul30
0

Только для полноты я отправляю код-фрагмент, который возник из-за помощи stackoverflow. Время datetime двух показаний датчика не синхронизировано, поэтому я не мог бы строить график, как было предложено.

fig = plt.figure()

ax1 = plt.subplot(221)
ax2 = plt.subplot(222)
ax3 = plt.subplot(212)

df1.plot(x='Date', y='series1',ax=ax1)
df2.plot(x='Date', y='series2',ax=ax2)
df1.plot(x='Date', y='series1',ax=ax3)
df2.plot(x='Date', y='series2',ax=ax3)

plt.tight_layout()
plt.show()

Изображение 174551

Ещё вопросы

Сообщество Overcoder
Наверх
Меню