我尝试使用pandas
和matplotlib
绘制一些数据。
考虑这些数据:
years = [i for i in range(2005, 2016)]
values = [49.929266640000002, 45.441518010000003, 49.762879810000001, 52.849612180000001, 57.618790150000002, 47.750615240000002, 47.508212309999998, 37.414841590000002, 45.441518010000003, 47.750615240000002, 49.929266640000002]
如果我绘制数据:
lineplt = pandas.Series(values, name='Some City 2005 - 2015')
lineplt.index = years
lineplt.plot(title = 'Rate some city 2005 - 2015', legend=True)
一切顺利:
但是,如果尝试的时间少于11年,x axis
不会显示年份:
例如,请考虑以下数据:
years = [i for i in range(2008, 2016)]
values = [49.929266640000002, 45.441518010000003, 49.762879810000001, 52.849612180000001, 57.618790150000002, 47.750615240000002, 47.508212309999998, 37.414841590000002]
lineplt = pandas.Series(values, name='Some city 2008 - 2015')
lineplt.index = years
lineplt.plot(title = 'Rate some city 2008 - 2015', legend=True)
它显示:
是否有解决方案,可能是我遗漏的一些参数或参数,以显示从2008年到2015年的年份而不是索引作为单个数字?
提前致谢!
答案 0 :(得分:2)
解决问题的最简单方法是明确使用datetime
个对象作为索引。熊猫为此提供了一个实用工具:
years = pd.date_range('2008','2015', freq='AS')
freq
参数采用偏移量。您可以创建自己的版本,也可以使用built-in aliases。
答案 1 :(得分:0)
你应该使用类似的东西:
fig = plt.figure()
ax = fig.add_subplot(1,1,1)
ax.get_xaxis().get_major_formatter().set_useOffset(False)
ax.set_xlim((2008, 2016))