我正在尝试根据日期绘制信息。我有日期列表,格式为“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/