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记号绝对没有问题,它们
只要你愿意,星期一就行