2012-06-05 6 views
15

Я создаю экранную фигуру, которая имеет два подзаголовка: одно изображение, а другое - график. Границы чрезвычайно велики вокруг фигур.Как установить поля для фигуры matplotlib?

Как отрегулировать поля вокруг фигур?


Большинство вопросов, которые я искал привлеченные изображения экономии (BBOX казалось идеальным), и с помощью осей вместо сюжетных для абсолютного позиционирования.

Вот код, который я использовал для создания фигуры:

def __init__(self, parent): 
    wx.Panel.__init__(self, parent) 
    ... 

    self.figure, (self.picture, self.intensity) = \ 
     plt.subplots(nrows=2, figsize=(12, 5)) 
    self.figure.set_dpi(80) 
    #self.figure.subplots_adjust(left=0.1, right=0.9, top=0.9, bottom=0.1) 
    #self.picture.imshow(np.random.uniform()) #size=(5, 50))) 
    self.intensity.plot(np.random.random()) #size=641)) 

    self.intensity.autoscale(axis='x', tight=True) 
+3

посмотрите plt.tight_layout() или plt.subplots_adjust() или fig.savefig (bbox_inches = 'tight') – bmu

+0

@bmu, я думаю, что ваш комментарий должен быть ответом, нет? – Yann

+1

Множество функций работает только для режима Pylab и сохранения цифр. Я хочу что-то, что работает для объекта 'Figure'. – aitchnyu

ответ

24

Посмотрите plt.tight_layout() или plt.subplots_adjust() или fig.savefig(bbox_inches='tight').

С subplots_adjust вы можете отрегулировать большинство параметров, в то время как tight_layout() и bbox_inches='tight' более или менее полуавтоматические.

-3

Вы также можете использовать plt.set() с атрибутами, указанными в меню настройки графика, например. set (top = 0.82) и т. д.

+1

Не работает для меня. Пожалуйста, укажите более подробный ответ. – toom

+0

Я не нашел matplotlib.pyplot.set в документации http://matplotlib.org/api/pyplot_api.html – usernumber

+0

Они, вероятно, изменили свой API за последние 2 года. – Tritlo

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