Ich habe eine Matplotlib-Figur, in der ich Daten zeichne, die immer als Nanosekunden bezeichnet werden (1e-9). Wenn ich auf der y-Achse Daten habe, die zehn Nanosekunden betragen, d. H. In 44e-9 wird der Wert auf der Achse als 4,4 mit einem + 1e-8 als Versatz angezeigt. Gibt es überhaupt eine Möglichkeit, die Achse zu zwingen, 44 mit einem Versatz von + 1e-9 anzuzeigen?
Gleiches gilt für meine x-Achse, auf der die Achse + 5.54478e4 anzeigt, wo ich lieber einen Versatz von +55447 anzeigen möchte (ganze Zahl, keine Dezimalstelle - der Wert hier ist in Tagen).
Ich habe ein paar Dinge wie diese 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 benutze oder etwas aus den Dokumenten falsch interpretiere, kann mich jemand in die richtige Richtung weisen?
Danke, Jonathan
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)
und
myxfmt = ScalarFormatter(useOffset=True)
myxfmt.set_portlimits((-9,5))
axes.get_xaxis().set_major_formatter(myxfmt)
Nebenbei bemerkt, ich bin tatsächlich verwirrt darüber, wo sich das Objekt "Versatznummer" tatsächlich befindet ... ist es Teil der Haupt- / Neben-Ticks?
rcParams
, ob standardmäßig deaktiviert werden soll : rcParams["axes.formatter.useoffset"] = False
wie hier: stackoverflow.com/questions/24171064/…
set_units
? matplotlib.sourceforge.net/api/… (Ich kann es nicht versuchen, weil ich hier kein Matplotlib habe.)