#!/usr/bin/env python # a bar plot with errorbars import numpy as np import matplotlib.pyplot as plt from scipy.stats import t RLMeans = [84.32, 76.66, 67.68, 58.88, 55, 52.14] RLStd = [1, 1.2, 1.3, 1.1, 1, 1.2] N = 6 ind = np.arange(N) # the x locations for the groups width = 0.35 # the width of the bars dof = N - 1 # degrees of freedom alpha = 1.0 - 0.95 temp_conf1 = t.ppf(1-alpha/2., dof) * np.sqrt(1.+1./N) conf_interval_RL = [temp_conf1 * i for i in RLStd] fig, ax = plt.subplots() rects1 = ax.bar(ind, RLMeans, width, yerr=conf_interval_RL) MAMeans = [83.6, 68.2, 59.87, 51.07, 43.64, 36.32] MAStd = [0.3, 0.8, 0.5, 0.4, 0.7, 0.6] temp_conf1 = t.ppf(1-alpha/2., dof) * np.sqrt(1.+1./N) conf_interval_MA = [temp_conf1 * i for i in MAStd] rects2 = ax.bar(ind + width, MAMeans, width, yerr=conf_interval_MA) # add some text for labels, title and axes ticks ax.set_ylabel('escape rate(%)', fontsize=15) ax.set_xlabel('noise', fontsize=15) ax.set_xticks(ind + width/2.) ax.set_xticklabels(('0', '1', '2', '3', '4', '5')) ax.set_ylim(30,100) ax.legend((rects1[0], rects2[0]), ('RL', 'MA'), fontsize=15) def autolabel(rects): # attach some text labels for rect in rects: height = rect.get_height() ax.text(rect.get_x() + rect.get_width()/2., 1.05*height, '%d' % int(height), ha='center', va='bottom') autolabel(rects1) autolabel(rects2) plt.show()
相关文章: