感谢您的时间:
我有一个创建条形图的Flask应用程序。
此功能:
def make_bar(g_title, y_title, x_labels, data_series, file_name, cat_title,
x_title):
rcParams['figure.figsize'] = 6.55, 3.8
n_groups = 13
bar_width = 0.35
opacity = 0.4
fig, ax = plt.subplots()
index = np.arange(n_groups)
error_config = {'ecolor': '0.3'}
plt.bar(index, tuple(data_series[0][1]), bar_width,
alpha=opacity,
color='b',
error_kw=error_config,
label='{}'.format(data_series[0][0]))
plt.bar(index + bar_width, tuple(data_series[1][1]), bar_width,
alpha=opacity,
color='r',
error_kw=error_config,
label='{}'.format(data_series[1][0]))
box = ax.get_position()
ax.set_position([box.x0, box.y0, box.width * 0.8, box.height])
plt.xlabel(x_title, fontsize=10)
plt.ylabel(y_title, fontsize=10)
plt.title(g_title, fontsize=11)
plt.xticks(index + bar_width, tuple(x_labels), fontsize=8)
plt.yticks(fontsize=8)
plt.axis('tight')
lgd = plt.legend(fontsize=8, bbox_to_anchor=(1.15, 0.5))
plt.tight_layout()
plt.savefig('{}/{}.png'.format(images, file_name),
dpi=100, format='png', bbox_extra_artists=(lgd,),
bbox_inches='tight')
return
产生这个:
但我需要看起来像这样:
如何调整代码以使所有内容并排放置?
由于
答案 0 :(得分:1)
要控制子图的位置以为图例腾出空间,可以使用fig.subplots_adjust
:
fig.subplots_adjust(right=0.8) # adjust 0.8 for your needs.