def plot_bar_chart(page, datasets, dataset_labels, dataset_colors, x_group_labels, err=0, title=None, xlabel='Bins', ylabel='Counts'):
assert len(datasets) == len(dataset_colors) == len(dataset_labels)
for dataset in datasets:
assert len(dataset) == len(datasets[0])
assert len(dataset) == len(x_group_labels)
num_x_groups = len(datasets[0])
x_group_locations = pylab.arange(num_x_groups)
width = 1.0 / float(len(datasets)+1)
figure = pylab.figure()
axis = figure.add_subplot(111)
bars = []
for i in xrange(len(datasets)):
bar = axis.bar(x_group_locations + (width*i), datasets[i], width, yerr=err, color=dataset_colors[i], error_kw=dict(ecolor='pink', lw=3, capsize=6, capthick=3))
bars.append(bar)
if title is not None:
axis.set_title(title)
if ylabel is not None:
axis.set_ylabel(ylabel)
if xlabel is not None:
axis.set_xlabel(xlabel)
axis.set_xticks(x_group_locations + width*len(datasets)/2)
x_tick_names = axis.set_xticklabels(x_group_labels)
rot = 0 if num_x_groups == 1 else 15
pylab.setp(x_tick_names, rotation=rot, fontsize=10)
axis.set_xlim(-width, num_x_groups)
y_tick_names = axis.get_yticklabels()
pylab.setp(y_tick_names, rotation=0, fontsize=10)
axis.legend([bar[0] for bar in bars], dataset_labels)
page.savefig()
pylab.close()
评论列表
文章目录