Python 3.x matplotlib x-ticks的日期时间索引

Python 3.x matplotlib x-ticks的日期时间索引,python-3.x,pandas,datetime,matplotlib,Python 3.x,Pandas,Datetime,Matplotlib,我有一个熊猫日期框,日期索引如下: Date 2020-09-03 2020-09-04 2020-09-07 2020-09-08 这些日期缺少一些条目,因为它只提供工作日的数据 我想做的事情是:绘制数字,并在一周的每个星期一设置一个x记号 到目前为止,我已经尝试: date_form = DateFormatter("%d. %b %Y") ax4.xaxis.set_major_formatter(date_form) ax4.xaxis.set_major_loc

我有一个熊猫日期框,日期索引如下:

Date
2020-09-03
2020-09-04
2020-09-07 
2020-09-08
这些日期缺少一些条目,因为它只提供工作日的数据

我想做的事情是:绘制数字,并在一周的每个星期一设置一个x记号

到目前为止,我已经尝试:

date_form = DateFormatter("%d. %b %Y")
ax4.xaxis.set_major_formatter(date_form)
ax4.xaxis.set_major_locator(mdates.WeekdayLocator(byweekday=MO))
但它将从1970年开始,而不是从实际日期索引开始

然后我试着:

mdates.set_epoch('First day of my data')
但这不会有什么帮助,因为在我的原始索引中跳过了周六和周日


你知道我能做什么吗?

如果你用一个日期时间类型的轴画一个线图, 最自然的解决办法是使用绘图日期

我创建了一个示例数据框,如下所示:

            Amount
Date              
2020-08-24     210
2020-08-25     220
2020-08-26     240
2020-08-27     215
2020-08-28     243
...
日期(索引)是日期时间类型

要绘制的代码是:

import matplotlib.pyplot as plt
import matplotlib.dates as mdates

fig, ax = plt.subplots()
plt.xticks(rotation=30)
ax.plot_date(df.index, df.Amount, linestyle='solid')
ax.xaxis.set_major_locator(mdates.WeekdayLocator(byweekday=0))
plt.grid()
plt.show()
我得到的图片是:

正如您所看到的,x记号绝对没有问题,它们 只要你愿意,星期一就行