プロット図を縮小して空きを作る(応用)
図の右側に空きを作り、そこに箱髭図の各値(中央値、箱の上端、箱の下端、髭の上端、髭の下端、外れ値)を表示する。
#!/usr/bin/env python import random import dateutil.parser as parser import matplotlib.pyplot as plt import matplotlib.dates as mdates def plot(): val = [] val.append([random.normalvariate(0,100) for j in range(10000)]) val.append([random.normalvariate(20,50) for j in range(10000)]) fig = plt.figure() ax = fig.add_subplot(1,1,1) ax.set_ylim([-400,400]) ax.grid() ax.set_xticklabels(["A","B"]) bp = ax.boxplot(val) txt = "A info:\n" txt += "Median = %.2f\n"%bp["medians"][0].get_ydata()[0] txt += "3rd Quartile = %.2f\n"%bp["boxes"][0].get_ydata()[2] txt += "1st Quartile = %.2f\n"%bp["boxes"][0].get_ydata()[0] txt += "Upper Whisker = %.2f\n"%bp["whiskers"][1].get_ydata()[1] txt += "Lower Whisker = %.2f\n"%bp["whiskers"][0].get_ydata()[1] txt += "Highest Flier = %.2f\n"%sorted(bp["fliers"][0].get_ydata())[-1] txt += "Lowest Flier = %.2f\n"%sorted(bp["fliers"][1].get_ydata())[0] txt += "\n" txt += "B info:\n" txt += "Median = %.2f\n"%bp["medians"][1].get_ydata()[0] txt += "3rd Quartile = %.2f\n"%bp["boxes"][1].get_ydata()[2] txt += "1st Quartile = %.2f\n"%bp["boxes"][1].get_ydata()[0] txt += "Upper Whisker = %.2f\n"%bp["whiskers"][3].get_ydata()[1] txt += "Lower Whisker = %.2f\n"%bp["whiskers"][2].get_ydata()[1] txt += "Highest Flier = %.2f\n"%sorted(bp["fliers"][2].get_ydata())[-1] txt += "Lowest Flier = %.2f\n"%sorted(bp["fliers"][3].get_ydata())[0] ax.text(1.2, 0.1 , txt, fontsize=12, transform=ax.transAxes) fig.subplots_adjust(right=0.5) plt.savefig('test.png') if __name__=="__main__": plot()