我正在尝试使用pyplot绘制一些数据,其中x轴是datetime
对象的列表。然而,日期以标准格式显示,即%Y-%m-%d %H:%M:%S
(太长了)。我可以通过使用strftime
创建日期字符串列表,并使用它代替。我还知道pyplot
中有一种内在的date
对象,我可以使用它来替代datetime
。
有没有办法告诉pyplot
以哪种格式绘制datetime
对象呢?而不必将所有内容转换为字符串或另一种对象?
谢谢。
我正在尝试使用pyplot绘制一些数据,其中x轴是datetime
对象的列表。然而,日期以标准格式显示,即%Y-%m-%d %H:%M:%S
(太长了)。我可以通过使用strftime
创建日期字符串列表,并使用它代替。我还知道pyplot
中有一种内在的date
对象,我可以使用它来替代datetime
。
有没有办法告诉pyplot
以哪种格式绘制datetime
对象呢?而不必将所有内容转换为字符串或另一种对象?
谢谢。
您可以使用DateFormatter
:
fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot(your_dates, your_data)
# format your data to desired format. Here I chose YYYY-MM-DD but you can set it to whatever you want.
import matplotlib.dates as mdates
ax.xaxis.set_major_formatter(mdates.DateFormatter('%Y-%m-%d'))
# rotate and align the tick labels so they look better
fig.autofmt_xdate()
你可以在matplotlib rc文件中修改,# date.autoformatter.year : %Y # date.autoformatter.month : %Y-%m # date.autoformatter.day : %Y-%m-%d # date.autoformatter.hour : %m-%d %H # date.autoformatter.minute : %d %H:%M # date.autoformatter.second : %H:%M:%S # date.autoformatter.microsecond : %M:%S.%f
plt.rcParams["date.autoformatter.minute"] = "%Y-%m-%d %H:%M:%S"
date.autoformatter
库是用来做什么的? - Dimitri Coukos