如何解决熊猫DatetimeIndex到matplotlib x-ticks
我有一个熊猫Dateframe,其日期索引如下:
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')
但这无济于事,因为我原来的索引中跳过了星期六和星期日。
有什么想法我能做什么?
解决方法
如果您用一个 datetime 类型的轴绘制线图, 最自然的解决方案是使用 plot_date 。
我创建了一个如下所示的DataFrame示例:
Amount
Date
2020-08-24 210
2020-08-25 220
2020-08-26 240
2020-08-27 215
2020-08-28 243
...
日期(索引)是 datetime 类型。
要绘制的代码是:
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 刻度完全没有问题,它们 只要您愿意,就在星期一。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。