2012-06-05 30 views
15

Estoy generando una figura en pantalla que tiene dos subtramas: una es una imagen y la otra es un gráfico. Los márgenes son extremadamente grandes alrededor de las figuras.¿Cómo establecer los márgenes para una figura de matplotlib?

¿Cómo ajusto los márgenes alrededor de las figuras?


mayoría de las preguntas que me hizo una búsqueda de imágenes de ahorro implicados (Bbox parecía perfecto), y el uso de ejes en lugar de subtramas de posicionamiento absoluto.

Aquí está el código que utiliza para generar la figura:

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

eche un vistazo a plt.tight_layout() o plt.subplots_adjust() o fig.savefig (bbox_inches = 'tight') – bmu

+0

@bmu, creo que su comentario debería ser una respuesta, ¿no? – Yann

+1

Muchas funciones funcionan solo para el modo Pylab y guardan figuras. Quiero algo que funcione para un objeto 'Figure'. – aitchnyu

Respuesta

24

Tenga una mirada en plt.tight_layout() o plt.subplots_adjust() o fig.savefig(bbox_inches='tight').

Con subplots_adjust Se puede ajustar la mayoría de los parámetros, mientras que tight_layout() y bbox_inches='tight' son más o menos semi automática.

-3

También puede utilizar plt.set(), con los atributos dados en el menú de ajuste trama, por ejemplo, set (arriba = 0.82) etc.

+1

No funciona para mí. Por favor, indique una respuesta más elaborada. – toom

+0

No he encontrado matplotlib.pyplot.set en la documentación http://matplotlib.org/api/pyplot_api.html – usernumber

+0

Probablemente hayan cambiado su API en los últimos 2 años. – Tritlo

Cuestiones relacionadas