Matplotlib, absolute Positionierung von Text

mit matplotlib, NumPy, pandas, SciPy, SymPy und weiteren mathematischen Programmbibliotheken.
Antworten
superschlau
User
Beiträge: 9
Registriert: Mittwoch 4. April 2018, 09:12

Dienstag 3. Dezember 2019, 09:32

Salü zäme
Wie ich aus der Dokumentation entnehme, beziehen sich x und y bei matplotlib.pyplot.text auf die Skalierung der entsprechenden Achsen.
Ich möchte auf meinen Auswertungen z.B. immer unten rechts das Erstellungsdatum hinzufügen. Wenn ich diese feste Position immer auf die Skala der Achse umrechnen muss, ist das etwas kompliziert und ohne genaue Kenntnisse der matplotlib-Parameter fast nicht möglich. Ich kann zwar mit get_ylim der minimale und maximale Wert der Achse rauslesen, wo aber der minimale Wert von der anderen Achse distanziert ist, habe ich nicht rausgefunden.

Deshalb meine Frage, ist es möglich einen Text in absoluten Koordinaten (z.B. in Pixel) anzugeben?? Oder wie könnte man ein solches Problem elegant lösen?

Besten Dank und Gruss, Jakob
Benutzeravatar
kbr
User
Beiträge: 1079
Registriert: Mittwoch 15. Oktober 2008, 09:27

Dienstag 3. Dezember 2019, 09:56

Du könntest die figure statt der axis zur Positionierung verwenden. Dort erfolgt die Positionierung im Bereich 0-1 über die figure.
einfachTobi
User
Beiträge: 10
Registriert: Mittwoch 13. November 2019, 08:38

Dienstag 3. Dezember 2019, 10:01

Du kannst die Koordinaten auf verschiedene Weise über den `transform`-Parameter transformieren (lassen).
Beispiele:

Code: Alles auswählen

import matplotlib.pyplot as plt
import numpy as np
x = np.arange(0, 10, 0.005)
y = np.exp(-x/2.) * np.sin(2*np.pi*x)
fig, ax = plt.subplots()
ax.plot(x, y)
ax.set_xlim(0, 10)
ax.set_ylim(-1, 1)
ax.text(0.95, -0.1, 'FOO', transform=ax.transAxes)
ax.text(0.91, 0.033, 'BAR', transform=fig.transFigure)
plt.show()
`transform=None` führt zu Verwendung des Pixel-Koordinatensystems des Fensters. Nähere Informationen hier: https://matplotlib.org/3.1.1/tutorials/ ... orial.html
Die Lösung über relative Angaben ist der elegante Weg, da so sichergestellt ist, dass der Text unabhängig von der Fenstergröße immer an der gleichen Stelle landet.
superschlau
User
Beiträge: 9
Registriert: Mittwoch 4. April 2018, 09:12

Dienstag 3. Dezember 2019, 21:59

Super, hat geklappt!
Vielen Dank...
Antworten