我正在尝试根据日期绘制信息。我有一个格式为“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:年份超出范围”。有什么解决办法吗?
原文由 irl_irl 发布,翻译遵循 CC BY-SA 4.0 许可协议
正如@KyssTao 所说,
help(dates.num2date)
表示x
必须是一个浮点数,给出自 0001-01-01 以来的天数加一。因此,19910102
不是 1991 年 1 月 2 日,因为如果您从 0001-01-01 开始计算 19910101 天,您将在 54513 年或类似年份得到一些东西(除以 365.25,a 中的天数年)。使用
datestr2num
代替(参见help(dates.datestr2num)
):