我正在尝试绘制两个系列并且每隔5年标记一次x轴刻度。如果由于某种原因我使用PeriodIndex
索引数据,我会每隔10年获得一次。如果我使用整数列表来索引,那么它工作正常。有没有办法用PeriodIndex
来获得正确的刻度标签?
import pandas as pd
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt
np.random.seed(0)
idx = pd.PeriodIndex(range(2000,2021),freq='A')
data = pd.DataFrame(np.random.normal(size=(len(idx),2)),index=idx)
fig,ax = plt.subplots(1,2,figsize=(10,5))
data.loc[:,0].plot(ax=ax[0])
data.iloc[9:,1].plot(ax=ax[1])
ax[1].xaxis.set_major_locator(mpl.ticker.MultipleLocator(5))
plt.show()
idx = range(2000,2021)
我知道的解决方法是将PeriodIndex
转换为DatetimeIndex
,然后转换为datetime.datetime
个对象的数组,并使用plt.plot_date()
绘制并mpl.dates.YearLocator(5)
为格式。这似乎过于复杂。