2015-01-10 9 views
7

Der folgende Screenshot zeigt meine Xaxis. Ich habe einige Etiketten hinzugefügt und sie um 90 Grad gedreht, um sie besser lesen zu können. Pyplot schneidet jedoch die Unterseite ab, so dass ich die Beschriftungen nicht vollständig lesen kann. Wie erweitere ich den unteren Rand, um die vollständigen Etiketten zu sehen?pyplot: Rand an der Unterseite einer Figur erweitern

enter image description here

Antwort

18

Zwei rück Möglichkeiten:

fig, ax = plt.subplots() 
# ... 
fig.tight_layout() 

Oder

fig.subplots_adjust(bottom=0.2) # or whatever 

hier ein subplots_adjust Beispiel: http://matplotlib.org/examples/pylab_examples/subplots_adjust.html

(aber ich ziehe tight_layout)

+1

Sie auch 'tight_layout = true' zu' subplots' passieren kann sagen, die die gleiche Wirkung sa. – tacaswell

+0

Gibt es eine Möglichkeit, dies zu tun, ohne '' tight_layout'' oder '' subplots'' zu verwenden? I.e. wenn man nur eine Figur erstellt und über '' plt.plot (...) '' ein Plot hinzufügt. Der Grund, warum ich frage, ist, weil ich versuche, mehrere Plots für einen Film zu erstellen, und die Titel- und Achsenbeschriftungen wackeln herum, wenn '' subplots'' und/oder '' tight_layout'' verwendet werden. Jede Hilfe wäre willkommen. – Wolpertinger

+1

@Wolpertinger: 'fig = plt.figure(); fig.add_axes (...); 'https://matplotlib.org/api/_as_gen/matplotlib.figure.Figure.html#matplotlib.figure.Figure.add_axes –

1

Subplot-adjust funktionierte nicht für mich, da die ganze Figur nur mit den noch außerhalb der Grenzen liegenden Labels skalieren würde.

fand eine Abhilfe, die ich war, die y-Achse immer einen gewissen Spielraum über die höchsten oder minimale y-Werte zu halten:

x1,x2,y1,y2 = plt.axis() 
plt.axis((x1,x2,y1 - 100 ,y2 + 100)) 
1

Eine schnelle einzeilige Lösung, die für mich gearbeitet hat, ist pyplot zu gebrauchen auto tight_layout method direkt, in Matplotlib V1.1:

plt.tight_layout() 

Dies kann sofort aufgerufen werden vor Sie die Handlung zeigen (plt.show()), aber nach Ihre Manipulationen an den Achsen (z.B. Tickzettelumdrehungen usw.).

Diese bequeme Methode vermeidet das Manipulieren einzelner Abbildungen von Teilzeichnungen.

Wo PLT ist die Standard-pyplot aus: import matplotlib.pyplot as plt

Verwandte Themen