[matplotlib] Mehrere Axen verschmelzen zu einer?

mit matplotlib, NumPy, pandas, SciPy, SymPy und weiteren mathematischen Programmbibliotheken.
Antworten
p90
User
Beiträge: 198
Registriert: Donnerstag 22. Juli 2010, 17:30

Hi,

ich habe eine Problem beim erstellen eines Plot der einen großen Bereich von Geschwindigkeiten umfasst.
Um dies Vernünftig abzubilden möchte ich gerne im Bereich von <0.1 die Geschwindigkeit in log(v/c) ausdrücken, zwischen 0.1 und 0.99 linear also einfach v/c und ab 0.99 als gamma Faktor (für die Nicht Physiker: Das ist einfach eine Funktion die die Geschwindigkeit auf eine Positive Zahl größer als 1 Abbildet).

Momentan benutze ich dazu drei Getrennte Axen. Das Ergebnis sieht etwa so aus:Bild

Das Problem dabei ist:
1. Die Legende bekomme ich nur per Hand über die drei Achsen angepasst.
2. Ich würde gerne eine Option einbauen, mit der man den ganz linken oder ganz rechten Teil abschalten kann. Das ganze endet aber in einem Furchtbaren Code Mess wenn man jeden Zugriff auf eine Achse ein If einbaut.

Gibt es eine Möglichkeit, das ganze zu vereinfachen, entweder indem man matplotlib sagt, das es diese 3 Achsen wie eine Betrachten soll, dann wäre sowohl 1 als auch 2 leicht lösbar.
Oder muss ich hier eine Custom Achse bauen wie hier beschrieben?
https://matplotlib.org/examples/api/cus ... ample.html
Das scheint mir ein ziemlicher Overkill zu sein.

Danke für die Hilfe im Voraus!
Benutzeravatar
pixewakb
User
Beiträge: 1409
Registriert: Sonntag 24. April 2011, 19:43

Mir ist nicht ganz klar, was genau du vorhast. Ich quäle mich gerade selbst durch matplotlib und kann da wenig raten. Ich würde deine Anfrage bei stackoverflow.com stellen (auf Englisch), weil dort mehr Leute unterwegs sind, die sich mit matplotlib befassen.

Du kannst gerne deinen Quellcode posten (für matplotlib), aber ich kann nicht versprechen, dass ich ihn verstehe und etwas dazu sagen kann. Ich lerne matplotlib gerade selbst.

Ich fand hilfreich: http://pbpython.com/effective-matplotlib.html Ferner gibt es mehr oder weniger nette Tutorials bei medium.com.
Melewo
User
Beiträge: 320
Registriert: Mittwoch 3. Mai 2017, 16:30

Hatte nur nach "v/c" gesucht, gefunden irgendetwas mit Rapidität und:

v Geschwindigkeit
c Lichtgeschwindigkeit

Aber auch vc mit tiefer gestellten c für die Schnittgeschwindigkeit im Werkzeugmaschinenbau, wo dann nach meinen Vorstellungen z.B. eine Fräse langsam und logarithmisch anlaufen könnte, bevor diese dann mit linearer oder konstanter Geschwindigkeit sich weiter durchs Material frisst.

Die Lichtgeschwindigkeit und ein Gamma-Faktor würden besser zu einem Physiker passen, womit wohl etwas aus dem ersten Bereich gemeint sein dürfte. Nun ja, jedenfalls eine Hausnummer für sich und irgendwie war ich schon gespannt, traute mich nur selbst nicht heran, weil ich mit Matplotlib bisher nur ein ganz kleinwenig experimentierte.
Melewo
User
Beiträge: 320
Registriert: Mittwoch 3. Mai 2017, 16:30

Der letzte Teil sollte dann aussehen wie auf die Grafik auf dieser Seite?
Oder nicht?

https://de.wikipedia.org/wiki/Lorentzfaktor
Antworten