箱髭図のプロット, その2
横軸を2010年1月〜4月の日付とし、各日[10-50]間の乱数を100個生成し、それを箱髭図としてプロット。
横軸のラベルの表示を毎月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) for j in range(100)]) fig = plt.figure() ax = fig.add_subplot(1,1,1) ax.set_ylim([0,100]) ax.grid() ax.boxplot(val,positions=mdates.date2num(x)) 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()