У меня есть временной ряд, который я хотел бы изобразить год за годом. Я хочу, чтобы данные были ежедневными, но ось каждый месяц будет отображаться как "январь", "февраль" и т. Д.
В настоящий момент я могу получить дневные данные, НО ось 1-366 (день года).
Или я могу получить месячную ось как 1, 2, 3 и т. Д. (Изменив индекс на df.index.month), НО тогда данные будут ежемесячными.
Как преобразовать ось дня года в месяцы? Или как я могу это сделать?
Код, показывающий дневные данные, но ось неверна:
# import
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# create fake time series dataframe
index = pd.date_range(start='01-Jan-2012', end='31-12-2018', freq='D')
data = np.random.randn(len(index))
df = pd.DataFrame(data, index, columns=['Data'])
# pivot to get by day in rows, then year in columns
df_pivot = pd.pivot_table(df, index=df.index.dayofyear, columns=df.index.year, values='Data')
df_pivot.plot()
plt.legend(loc='center left', bbox_to_anchor=(1, 0.5))
plt.show()