将x轴设置为一组值的时间(年,月)

时间:2015-03-09 18:09:29

标签: python numpy time graph plot

我有一组对应于一个月和一年的值(2012年1月,2012年3月,2012年10月到2014年),我试图绘制每个月的值,但是当我运行脚本x时轴被指定为“1,2,3”等

import numpy as np
import matplotlib.pyplot as plt
plt.plot([10, 180, 153, 80, 11, 92, 201, 74, 24])
plt.ylabel('Value')
plt.xlabel('Time')
plt.title('Number over time')
plt.show()
plt.ylim([0,300])
plt.show()

http://i.imgur.com/sqjWR0J.png

如何将X轴设置为2011-2014这些特定月份或所有月份?

我发现matplotlib的演示图非常令人困惑http://matplotlib.org/examples/pylab_examples/date_demo1.html

1 个答案:

答案 0 :(得分:4)

你永远不会发送mpl任何日期。它并不知道你试图在x轴上绘制日期:

import numpy as np
import matplotlib.pyplot as plt
import datetime as dt

dates = []
for year in range(2012, 2014):
    for month in range(1, 12):
        dates.append(dt.datetime(year=year, month=month, day=1))

y = [10, 180, 153, 80, 11, 92, 201, 74, 24]
plt.plot(dates[:9], y)
plt.show()

此示例仅显示您之后的前9个月,即您正在绘制的示例列表的长度。如果您想要特定日期,只需通过datetime模块自行声明。即你的约会[0]看起来像是:

datetime.datetime(2012, 1, 1, 0, 0) 
                 #year, month, day, hour min if I recall correctly.