matplotlib: Achsoffset-Werte auf ganze Zahlen oder eine bestimmte Zahl formatieren
Ich habe eine Matplotlib-Zahl, in der ich Daten zeichne, die immer als Nanosekunden bezeichnet werden (1e-9). Auf der y-Achse, wenn ich Daten habe, die zehn Nanosekunden sind, dh. In 44e-9 wird der Wert auf der Achse als 4,4 mit einer + 1e-8 als Versatz angezeigt. Muss die Achse trotzdem gezwungen werden, 44 mit einem Versatz von + 1e-9 anzuzeigen?
Das Gleiche gilt für meine x-Achse, auf der die Achse + 5.54478e4 anzeigt. Ich würde eher einen Versatz von +55447 anzeigen (ganze Zahl, keine Dezimalzahl - der Wert ist hier in Tagen).
Ich habe ein paar Dinge ausprobiert:
p = axes.plot(x,y)
p.ticklabel_format(style='plain')
für die x-Achse, aber das funktioniert nicht, obwohl ich es wahrscheinlich falsch verwende oder etwas aus den Dokumenten falsch interpretiere. Kann mich jemand in die richtige Richtung weisen?
ielen Dank, Jonath
Ich habe versucht, etwas mit Formatierern zu tun, habe aber noch keine Lösung gefunden ...:
myyfmt = ScalarFormatter(useOffset=True)
myyfmt._set_offset(1e9)
axes.get_yaxis().set_major_formatter(myyfmt)
un
myxfmt = ScalarFormatter(useOffset=True)
myxfmt.set_portlimits((-9,5))
axes.get_xaxis().set_major_formatter(myxfmt)
Eine Randnotiz ist, dass ich tatsächlich verwirrt bin, wo sich das Objekt 'Versatznummer' tatsächlich befindet ... ist es Teil der Haupt- / Nebenstriche?