Python 熊猫图中的日期时间索引

Python 熊猫图中的日期时间索引,python,pandas,datetime,matplotlib,indexing,Python,Pandas,Datetime,Matplotlib,Indexing,我正在尝试使用Pandas和matplotlib绘制一个时间序列图,并在x轴上标记工作日(周一)。然而,我遇到了一个奇怪的行为,我认为这是由pandas.Series.plot函数中的datetime索引处理(错误?)引起的 从以下文件(也在中): 使用索引bool,默认值为True。 使用索引作为x轴的记号 但是,尽管索引是DatetimeIndex类型,但它看起来并不是这样的(可能被当作字符串处理?) 考虑以下代码,该代码尝试使用三种不同的方法创建相同的绘图: 将numpy导入为np 作

我正在尝试使用Pandas和matplotlib绘制一个时间序列图,并在x轴上标记工作日(周一)。然而,我遇到了一个奇怪的行为,我认为这是由
pandas.Series.plot
函数中的datetime索引处理(错误?)引起的

从以下文件(也在中):

  • 使用索引
    bool,默认值为
    True
    。 使用索引作为x轴的记号
但是,尽管索引是
DatetimeIndex
类型,但它看起来并不是这样的(可能被当作字符串处理?)

考虑以下代码,该代码尝试使用三种不同的方法创建相同的绘图:

将numpy导入为np
作为pd进口熊猫
将matplotlib.pyplot作为plt导入
将matplotlib导入为mpl
idx=pd.日期范围(开始时间=2020-10-02',期间=35)
Y=np.cumsum(np.random.uniform(0,10,idx.size))
ts=pd.系列(Y,idx)
图,轴=plt.子批次(图尺寸=(10,6),nrows=3,受约束的布局=真)
ts.plot(kind='bar',ax=轴[0])#use_index=True由default使用
轴[0].xaxis.set_major_定位器(mpl.dates.WeekdayLocator(interval=1,byweekday=mpl.dates.MONDAY))
ts.plot(kind='bar',ax=轴[1])
axes[1].xaxis.set_major_locator(mpl.dates.WeekdayLocator(interval=1,byweekday=mpl.dates.MONDAY))
轴[1].xaxis.set_major_格式化程序(mpl.dates.DateFormatter(“%Y-%m-%d”))
轴[2]。条(ts.index,ts.values)
axes[2].xaxis.set_major_locator(mpl.dates.WeekdayLocator(interval=1,byweekday=mpl.dates.MONDAY))
axes[2].xaxis.set\u major\u格式化程序(mpl.dates.DateFormatter(“%Y-%m-%d”))
结果是

我原以为这三个情节大致相同。它们是,不包括x轴的刻度(应该标记星期一的日期)。在我看来,
DatetimeIndex
pandas.Series.plot
中并不能正确识别。第一个图上的日期是正确的,但勾选的日期不是星期一。更令人恼火的是,如果在刻度(第二个图)上应用新格式,甚至日期都是错误的


bar(ts.index,ts.values)
的行为是正确的,并按预期标记星期一。

这讨论了您在第二个子批中看到的问题。您可以发布软件包的版本吗?我没有从你的代码中得到相同的代码hi@Tom,我现在已经在我的家用电脑上尝试了该代码,它看起来确实不同于上面的代码:它在前两个子窗口中没有任何滴答声!也很奇怪。。。这些版本是:
pd.\uuuuuu版本\uuuuuu'0.25.3'mpl.\uuuuu版本\uuuuuuuu'3.0.2'
。最初的问题发生在相对较新的Anaconda安装上(大约一个月前),我明天将检查版本。@Tom遇到原始问题的版本:
pd.\uuuuu版本\uuuuuuu'1.1.3'mpl.\uuuu版本\uuuuuuuuu'3.3.1'