Seite 1 von 1

Matplotlib: Skalierung und definierte Achsenbeschriftung

Verfasst: Sonntag 10. Dezember 2017, 10:41
von aug_lager
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.

Re: Matplotlib: Skalierung und definierte Achsenbeschriftung

Verfasst: Sonntag 10. Dezember 2017, 11:33
von narpfel
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.

Re: Matplotlib: Skalierung und definierte Achsenbeschriftung

Verfasst: Sonntag 10. Dezember 2017, 11:53
von aug_lager
Vielen Dank, das hilft mir weiter!