我有一组对应于一个月和一年的值(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()
如何将X轴设置为2011-2014这些特定月份或所有月份?
我发现matplotlib的演示图非常令人困惑http://matplotlib.org/examples/pylab_examples/date_demo1.html
答案 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.