Python 使用PeriodIndex索引的数据绘图中缺少记号标签

Python 使用PeriodIndex索引的数据绘图中缺少记号标签,python,pandas,matplotlib,Python,Pandas,Matplotlib,我试图绘制两个系列,每5年标记一次x轴刻度。如果出于某种原因,我使用周期索引对数据进行索引,我每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(ran

我试图绘制两个系列,每5年标记一次x轴刻度。如果出于某种原因,我使用
周期索引
对数据进行索引,我每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()

我知道的解决方法是将
PeriodIndex
转换为
DatetimeIndex
,然后转换为
datetime.datetime
对象数组,并使用
plt.plot\u date()
进行绘图,使用
mpl.dates.YearLocator(5)
进行格式化。这似乎过于复杂

idx = range(2000,2021)