2015-03-09 1 views
1

У меня есть набор значений, которые соответствуют месяцу и году (январь 2012 года, март 2012 года, октябрь 2012 года до 2014 года), и я пытаюсь построить значения для каждого месяца, однако, когда я бег сценария оси й назначаются как «1, 2, 3» и т.д.Установка оси x как время (годы, месяцы) для набора значений

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

ответ

4

Вы никогда не отправить MPL любые даты. Он не знает, что вы пытаетесь построить даты на оси х:

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. 
Смежные вопросы