如果试图在matplotlib中绘制基于时间的数据,通常的方法是首先将日期转换为datatime对象,然后使用^{}函数让matplotlib将这些值转换为自己的内部表示。接下来,您可以告诉matplotlib如何使用格式化程序格式化x轴上的任何刻度,在本例中是^{}。例如,您可以选择显示每个刻度的月份和日期。
在本例中,我显示月份,日期在下面一行:from matplotlib import pyplot, dates
from datetime import datetime
data = [(“19800801”, 16), (“19800810”, 10), (“19800901”, 15), (“19800905”, 14)]
xaxis = [datetime.strptime(d, ‘%Y%m%d’) for d, v in data]
yaxis = [v for d, v in data]
ax = pyplot.gca()
xaxis = dates.date2num(xaxis) # Convert to maplotlib format
hfmt = dates.DateFormatter(‘%m\n%d’)
ax.xaxis.set_major_formatter(hfmt)
pyplot.xlabel(‘Date’)
pyplot.ylabel(‘Value’)
pyplot.plot(xaxis, yaxis)
pyplot.tight_layout()
pyplot.show()
显示如下:
然后,您可以将其扩展为使用DayLocator(),它告诉matplotlib将xtick放置在准确的日期位置,如下所示:ax.xaxis.set_major_locator(dates.DayLocator())
给你: