Matplotlib: Skalierung und definierte Achsenbeschriftung

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
aug_lager
User
Beiträge: 26
Registriert: Sonntag 4. Januar 2015, 12:01

Hallo miteinander,

eine Frage zu matplotlib: Ich möchte ein Diagramm erstellen, bei dem eine Achse logarithmisch skaliert ist. Zudem möchte ich bei der Achsenbeschriftung bestimmte Werte anzeigen. Beides für sich klappt, aber wenn ich die Skalierung und die Ticks einstelle, dann scheinen die Ticks irgendwie überschrieben zu werden. Weiß jemand Rat, wie ich die gewünschten Werte auch bei logarithmischer Skalierung anzeigen kann?

Hier mein Ansatz:

Code: Alles auswählen

import matplotlib.pyplot as plt

x = [0.125, 0.25, 0.5, 1.25, 4, 6.3, 12]
y = [2.12, 16.82, 48.34, 64.92, 80.37, 88.22, 99.44]

fig, ax = plt.subplots()
ax.plot(x, y)
ax.set_xscale("log")
ax.xaxis.set_ticks([0.001, 0.006, 0.02, 0.063, 0.2, 0.63, 2, 6.3, 20, 63, 100])

plt.show()
Wenn ich ax.set_xscale("log") auskommentiere wird mir die Beschriftung korrekt angezeigt. Ohne logarithmsiche Formatierung hilft mir das nur leider nicht viel.
narpfel
User
Beiträge: 645
Registriert: Freitag 20. Oktober 2017, 16:10

Moin,

hilft dir diese Antwort weiter?

Ansonsten ist vielleicht auch die `ticker`-API einen Blick wert. Da deine Tick-Positionen regelmäßig und logarithmisch sind, macht es eventuell Sinn, einen `LogLocator` mit passenden Parametern (`base = 10`, `subs = [2, 6.3]`) zu benutzen.
aug_lager
User
Beiträge: 26
Registriert: Sonntag 4. Januar 2015, 12:01

Vielen Dank, das hilft mir weiter!
Antworten