489 Stimmen

Einstellen von Auffüllungen mit abgeschnittenen oder überlappenden Etiketten

Aktualisierte MRE mit Nebenschauplätzen

  • Ich bin mir nicht sicher, ob die ursprüngliche Frage und MRE sinnvoll sind. Die Randauffüllung scheint für große x- und y-Beschriftungen richtig eingestellt zu sein.
  • Das Problem ist bei Teilflächen reproduzierbar.
  • Verwendung von matplotlib 3.4.2

    fig, axes = plt.subplots(ncols=2, nrows=2, figsize=(8, 6)) axes = axes.flatten()

    for ax in axes: ax.set_ylabel(r'$\ln\left(\frac{x_a-x_b}{x_a-x_c}\right)$') ax.set_xlabel(r'$\ln\left(\frac{x_a-x_d}{x_a-x_e}\right)$')

    plt.show()

enter image description here

Original

Ich zeichne einen Datensatz mit matplotlib wo ich ein xlabel habe, das ziemlich "hoch" ist (es ist eine in TeX gerenderte Formel, die einen Bruch enthält und daher die Höhe von ein paar Zeilen Text hat).

Auf jeden Fall ist der untere Teil der Formel immer abgeschnitten, wenn ich die Zahlen zeichne. Das Ändern der Zahlengröße scheint nichts daran zu ändern, und ich habe nicht herausgefunden, wie ich die x-Achse nach oben verschieben kann, um Platz für das x-Label zu schaffen. So etwas wäre eine vernünftige Übergangslösung, aber es wäre schön, wenn es eine Möglichkeit gäbe, Matplotlib automatisch erkennen zu lassen, dass die Beschriftung 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)$', fontsize=50)
plt.title('Example with matplotlib 3.4.2\nMRE no longer an issue')
plt.show()

enter image description here

Das y-Label ist vollständig sichtbar, das x-Label ist jedoch unten abgeschnitten.

Für den Fall, dass dies ein maschinenspezifisches Problem ist, führe ich dies auf OSX 10.6.8 mit matplotlib 1.0.0

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X