Mam figurę matplotlib, na której wykreślam dane, które są zawsze określane jako nanosekundy (1e-9). Na osi Y, jeśli mam dane to dziesiątki nanosekund, tj. 44e-9, wartość na osi pokazuje 4,4 z + 1e-8 jako przesunięcie. Czy jest w ogóle wymuszenie na osi pokazania 44 z przesunięciem + 1e-9?
To samo dotyczy mojej osi X, gdzie oś pokazuje + 5.54478e4, gdzie wolałbym, aby pokazywała przesunięcie +55447 (liczba całkowita, bez dziesiętnego - tutaj wartość jest w dniach).
Wypróbowałem kilka rzeczy takich jak ta:
p = axes.plot(x,y)
p.ticklabel_format(style='plain')
dla osi X, ale to nie działa, chociaż prawdopodobnie używam jej nieprawidłowo lub błędnie interpretuję coś z dokumentacji, czy ktoś może wskazać mi właściwy kierunek?
Dzięki, Jonathan
Próbowałem zrobić coś z elementami formatującymi, ale nie znalazłem jeszcze żadnego rozwiązania ...:
myyfmt = ScalarFormatter(useOffset=True)
myyfmt._set_offset(1e9)
axes.get_yaxis().set_major_formatter(myyfmt)
i
myxfmt = ScalarFormatter(useOffset=True)
myxfmt.set_portlimits((-9,5))
axes.get_xaxis().set_major_formatter(myxfmt)
Na marginesie, jestem właściwie zdezorientowany co do tego, gdzie faktycznie znajduje się obiekt „numer przesunięcia”… czy jest to część dużych / pomocniczych taktów?
set_units
? matplotlib.sourceforge.net/api/… (nie mogę tego wypróbować, ponieważ nie mam tutaj matplotlib.)