2012-06-05 18 views
15

Ich erstelle eine Abbildung auf dem Bildschirm, die zwei Unterplots hat: eines ist ein Bild und das andere ist ein Graph. Die Ränder sind um die Zahlen extrem groß.Wie legen Sie die Ränder für eine Matplotlib-Figur fest?

Wie passe ich die Ränder um die Figuren an?


Die meisten Fragen, die ich für beteiligt Speichern von Bildern gesucht (bbox perfekt schien), und mit Achsen statt Nebenhandlungen für die absolute Positionierung. Hier

ist der Code, den ich verwendet, um die Figur zu erzeugen:

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

siehe plt.tight_layout() oder pltplots_adjust() oder fig.savefig (bbox_inches = 'tight') – bmu

+0

@bmu, ich denke, dein Kommentar sollte eine Antwort sein, Nein? – Yann

+1

Viele Funktionen funktionieren nur für den Pylab-Modus und das Speichern von Zahlen. Ich möchte etwas, das für ein "Figur" -Objekt funktioniert. – aitchnyu

Antwort

24

Werfen Sie einen Blick auf plt.tight_layout() oder plt.subplots_adjust() oder fig.savefig(bbox_inches='tight').

Mit subplots_adjust können Sie die meisten Parameter einstellen, während tight_layout() und bbox_inches='tight' mehr oder weniger halbautomatisch sind.

-3

Sie können auch plt.set() verwenden, wobei die Attribute, die im Menü adjust plot angegeben sind, z. set (top = 0.82) etc.

+1

Funktioniert nicht für mich. Bitte geben Sie eine ausführlichere Antwort an. – toom

+0

Ich habe Matplotlib.pyplot.set in der Dokumentation http://matplotlib.org/api/pyplot_api.html – usernumber

+0

nicht gefunden Sie haben wahrscheinlich ihre API in den letzten 2 Jahren geändert. – Tritlo

Verwandte Themen