Seite 1 von 1

Gleicher Abstand bei Auflistung von Werten

Verfasst: Donnerstag 26. November 2020, 17:36
von Elias_HH
Guten Tag liebe Community,

ich schreibe gerade ein Programm der mir statistische Plots ausgibt. Neben den Plots möchte ich einige statisiche Werte ausgegeben bekommen. Mit Hilfe von plt.text() füge ich noch daneben einen Text ein der die Werte anzeigt:

Statistic:

Mean: 0.98
Median: 0.97
Sigma: 0.82
max threshold: nan

Das sieht nicht so aus. Ich möchte gerne, dass die Abstände gleich sind, so in etwas:

Statistic:

Mean:-----------------0.98
Median:--------------0.97
Sigma:----------------0.82
max threshold:---nan

Ich habe im Internet nichts konkretes finden könne, um mein Problem zu lösen.

Ps.: die Bindestriche zwischen dem Parameter und der Zahlen soll eigentlich nicht da sein. Ich musste die einfügen, weil die Abstände sonst bei der fertigen Version verschwinden würden.

Re: Gleicher Abstand bei Auflistung von Werten

Verfasst: Donnerstag 26. November 2020, 18:04
von __blackjack__
@Elias_HH: Du könntest erst die Beschriftungen setzen und dir dann die mit der breitesten „bounding box“ suchen und als Grundlage für die Berechnung der x-Koordinate der Werte verwenden.

Re: Gleicher Abstand bei Auflistung von Werten

Verfasst: Donnerstag 26. November 2020, 18:44
von narpfel
@Elias_HH: Eine andere Möglichkeit wäre, das ganze mit LaTeX als Tabelle zu formatieren:

Code: Alles auswählen

plt.rc('text', usetex=True)
plt.text(
    x, y,
    r"\setlength{\tabcolsep}{1em}"
    r"\begin{tabular}{ll}"
        r"mean & 0.42 \\"
        r"median & 0.27 \\"
        r"min & 42 \\"
        r"long long text & 27"
    r"\end{tabular}"
)
Achtung: Der Text muss anscheinend in einer Zeile stehen, weil `matplotlib` für jede Zeile ein neues LaTeX-Dokument erstellt.

Bild

Re: Gleicher Abstand bei Auflistung von Werten

Verfasst: Samstag 28. November 2020, 10:25
von tonikae
Vorschlag: Eine Figure mit 2 horizontalen Subplots anlegen.
In dem linken Bereich kannst du das Diagramm anzeigen,
in den rechten Bereich mit ax[1].text die Texte/Werte ausgeben.
Die Texte sind dann an den Koordinaten ausgerichtet.

Beispiel:

Code: Alles auswählen

daten=einlesen("Dateiname")
x=np.arange(daten.size)
fig,ax=pyplot.subplots( ncols=2, dpi=100, figsize=(6,3.3))
ax[0].plot(x,daten)
ax[1].set_axis_off()
ax[1].text(0,0.7,"Text1\nText2\nText3")
ax[1].text(0.5,0.7,"Wert1\nWert2\nWert3")
pyplot.show()