Ich matplotlib
zeichne einen Datensatz mit einem xlabel, das ziemlich "groß" ist (es ist eine in TeX gerenderte Formel, die einen Bruch enthält und daher das Höhenäquivalent von ein paar Textzeilen hat).
In jedem Fall wird der Boden der Formel immer abgeschnitten, wenn ich die Zahlen zeichne. Das Ändern der Figurengröße scheint dies nicht zu helfen, und ich konnte nicht herausfinden, wie die x-Achse "nach oben" verschoben werden kann, um Platz für das xlabel zu schaffen. So etwas wäre eine vernünftige vorübergehende Lösung, aber was schön wäre, wäre eine Möglichkeit, matplotlib automatisch erkennen zu lassen, dass das Etikett abgeschnitten ist, und die Größe entsprechend zu ändern.
Hier ist ein Beispiel dafür, was ich meine:
import matplotlib.pyplot as plt
plt.figure()
plt.ylabel(r'$\ln\left(\frac{x_a-x_b}{x_a-x_c}\right)$')
plt.xlabel(r'$\ln\left(\frac{x_a-x_d}{x_a-x_e}\right)$')
plt.show()
Während Sie das gesamte ylabel sehen können, ist das xlabel unten abgeschnitten.
Falls dies ein maschinenspezifisches Problem ist, führe ich dies unter OSX 10.6.8 mit matplotlib 1.0.0 aus
quelle
plt.savefig("test.png",bbox_inches='tight')
: stackoverflow.com/questions/21288062/…Antworten:
Verwenden:
Platz für das Etikett schaffen.
Bearbeiten:
Da ich die Antwort gegeben habe,
matplotlib
hat dietight_layout()
Funktion hinzugefügt . Also schlage ich vor, es zu benutzen:sollte Platz für das xlabel machen.
quelle
gcf().subplots_adjust
lieber alsplt.subplots_adjust
? Ist da ein Unterschied?gcf
undgca
? Du hast es versäumt zu erklären!tight_layout()
der xlabels-Cutoff behoben wurde, wurde mein ylabel leider abgeschnitten (was vorher nicht abgeschnitten wurde). Das erste Mittel (subplots_adjust(bottom=0.25)
) hat jedoch gut funktioniert. Vielen Dank.gcf()
undgca()
sind "Aktuelle Zahl abrufen " bzw. "Aktuelle Achsen abrufen ".Eine einfache Option besteht darin, matplotlib so zu konfigurieren, dass die Plotgröße automatisch angepasst wird. Es funktioniert perfekt für mich und ich bin mir nicht sicher, warum es nicht standardmäßig aktiviert ist.
Methode 1
Stellen Sie dies in Ihrer matplotlibrc-Datei ein
Weitere Informationen zum Anpassen der matplotlibrc-Datei finden Sie hier: http://matplotlib.org/users/customizing.html
Methode 2
Aktualisieren Sie die rcParams zur Laufzeit wie folgt
Der Vorteil dieses Ansatzes besteht darin, dass Ihr Code auf unterschiedlich konfigurierten Computern dieselben Diagramme erstellt.
quelle
Wenn Sie es in einer Datei speichern möchten, lösen Sie es mit dem folgenden
bbox_inches="tight"
Argument:quelle
Setzen Sie
plot.tight_layout()
nach allen Änderungen in das Diagramm, kurz vorshow()
odersavefig()
lösen Sie das Problem.quelle
plt.autoscale()
arbeitete für mich.quelle
Sie können die benutzerdefinierte Auffüllung auch
$HOME/.matplotlib/matplotlib_rc
wie folgt als Standard festlegen . Im folgenden Beispiel habe ich sowohl die untere als auch die standardmäßige Polsterung geändert:quelle