時系列データのプロット, その2
横軸を2010年1月〜4月の日付とし、各日[10-50]間の乱数をプロット。
横軸のラベルの表示を毎月1日、15日のみにする。
import random import dateutil.parser as parser import matplotlib.pyplot as plt import matplotlib.dates as mdates def plot(): x = [] x.extend([parser.parse("2010/01/%02d"%dd) for dd in range(1,31+1)]) x.extend([parser.parse("2010/02/%02d"%dd) for dd in range(1,28+1)]) x.extend([parser.parse("2010/03/%02d"%dd) for dd in range(1,31+1)]) x.extend([parser.parse("2010/04/%02d"%dd) for dd in range(1,30+1)]) val = [] for i in range(len(x)): val.append(random.randint(10,50)) fig = plt.figure() ax = fig.add_subplot(1,1,1) ax.set_ylim([0,100]) ax.grid() ax.plot(x,val) days = mdates.DayLocator(bymonthday=[1,15]) daysFmt = mdates.DateFormatter("%b/%d") ax.xaxis.set_major_locator(days) ax.xaxis.set_major_formatter(daysFmt) plt.savefig('test.png') if __name__=="__main__": plot()
DayLocator(bymonthday=[1,15]) とすることで、毎月1日,15日のみラベルを表示させることができる。
※より詳しくは、 http://matplotlib.org/api/dates_api.html#matplotlib.dates.DayLocator を参照