我正在尝试根据日期绘制信息。我有日期列表,格式为“01/02/1991”。

我通过执行以下操作来转换它们:

x = parser.parse(date).strftime('%Y%m%d'))

这给出了19910102
然后我尝试使用num2date
import matplotlib.dates as dates
new_x = dates.num2date(x)

绘图:
plt.plot_date(new_x, other_data, fmt="bo", tz=None, xdate=True)

但是我得到一个错误。它显示“ValueError:年份超出范围”。有什么办法吗?

最佳答案

就像@KyssTao所说的那样,help(dates.num2date)表示x必须是一个浮点数,表示从0001-01-01开始的天数加一。因此,19910102并非2/1991/1991年,因为如果您从0001-01-01开始算起19910101天,那么您将在54513年或类似的年份得到某物(除以365.25,即一年中的天数)。

请改用datestr2num(请参阅help(dates.datestr2num)):

new_x = dates.datestr2num(date) # where date is '01/02/1991'

关于python - 使用Python的matplotlib在x轴上绘制日期,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9627686/

10-12 18:43