我正在尝试根据日期绘制信息。我有一个格式为“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:年份超出范围”。有什么解决办法吗?
您可以使用更简单地做到这一点plot()
代替plot_date()
.
首先,将字符串转换为 Python 实例datetime.date
:
import datetime as dt
dates = ['01/02/1991','01/03/1991','01/04/1991']
x = [dt.datetime.strptime(d,'%m/%d/%Y').date() for d in dates]
y = range(len(x)) # many thanks to Kyss Tao for setting me straight here
然后绘制:
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
plt.gca().xaxis.set_major_formatter(mdates.DateFormatter('%m/%d/%Y'))
plt.gca().xaxis.set_major_locator(mdates.DayLocator())
plt.plot(x,y)
plt.gcf().autofmt_xdate()
Result:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)