2016-07-12 3 views
-1

У меня есть код для пистолета.
Поскольку я хочу сгруппировать несколько баров, я пытаюсь написать текст на графике, используя plt.annotate.
Однако, как вы можете видеть на картинке, слово «Что-то» в левом дне обрезается. Кто-нибудь знает, как я могу это исправить?
Вот мой кодКак установить дополнительные поля

#!/usr/bin/python 
import matplotlib 
matplotlib.use('Agg') 
import matplotlib.pyplot as plt 
import matplotlib.cm as cm 
import operator as o 
import numpy as np 

n_groups = 5 
means_men = (20, 35, 30, 35, 27) 
std_men = (2, 3, 4, 1, 2) 

means_women = (25, 32, 34, 20, 25) 
std_women = (3, 5, 2, 3, 3) 
fig, ax = plt.subplots() 
index = np.arange(n_groups) 
bar_width = 0.35 

opacity = 0.4 
error_config = {'ecolor': '0.3'} 
rects1 = plt.bar(index, means_men, bar_width, alpha=opacity, color='b', yerr=std_men, error_kw=error_config, label='Men') 

rects2 = plt.bar(index + bar_width, means_women, bar_width, 
       alpha=opacity, 
       color='r', 
       yerr=std_women, 
       error_kw=error_config, 
       label='Women') 

#plt.xlabel('Group') 
plt.ylabel('Scores') 
plt.title('Scores by group and gender') 
plt.annotate('Something', (0,0), (50,-40), xycoords = 'axes fraction', textcoords='offset points', va='top'); 
plt.annotate('Something', (0,0), (200,-20), xycoords = 'axes fraction', textcoords='offset points', va='top'); 
plt.xticks(index + bar_width, ('A', 'B', 'C', 'D', 'E')) 
plt.legend() 

plt.savefig('barchart_3.png') 

enter image description here

ответ

0

По какой-то причине, Matplotlib иногда клипы слишком агрессивно. Если добавить bbox_inches='tight', чтобы сохранить рис это должно включать фигуру правильно,

plt.savefig('barchart_3.png', bbox_inches='tight') 

В целом, вы можете настроить основной рисунок с чем-то вроде,

plt.subplots_adjust(bottom=0.1) 
+0

Спасибо! Это помогло! :) –

Смежные вопросы