2012-06-19 13 views
7

Używam matplotlib do wykreślania danych w funkcji czasu w formacie gg: mm: ss.ms gdzie ms to milisekundy. Jednak nie widzę milisekund w fabule. Czy można je również dodać?Wyświetlanie milisekund w matplotlib

dates = matplotlib.dates.datestr2num(x_values) # convert string dates to numbers 
plt.plot_date(dates, y_values) # doesn't show milliseconds 
+1

hej, proszę napisać kod, który pokazuje, co robisz. W ten sposób łatwiej jest ci pomóc, okrzyki. – fraxel

+0

Może być konieczne dodanie kwalifikatora w celu określenia liczby wyświetlanych miejsc dziesiętnych, na przykład% .2f. Jednak nie widząc więcej kodu, trudno o nim wiedzieć. – cosmosis

+0

Czy mógłbyś podać przykład? dzięki – Bob

Odpowiedz

8

Problem polega na tym, że istnieje klasa do formatu kleszcze i plot_date ustawia tę klasę do czegoś, co nie ma: automatyczny formater że nigdy wykreślania milisekund.

Aby to zmienić, należy zmienić format z matplotlib.dates.AutoDateFormatter na własny formater. matplotlib.dates.DateFormatter (fmt) tworzy formatator z ciągiem znaków datetime.strftime. Nie jestem pewien, jak uzyskać to, aby pokazać milisekundy, ale pokaże mikrosekundy, które mam nadzieję, będą działać dla ciebie; w końcu to tylko jedno dodatkowe zero. Wypróbuj ten kod:

dates = matplotlib.dates.datestr2num(x_values) # convert string dates to numbers 
plt.plot_date(dates, y_values) # doesn't show milliseconds by default. 

# This changes the formatter. 
plt.gca().xaxis.set_major_formatter(matplotlib.dates.DateFormatter("%H:%M:%S.%f")) 

# Redraw the plot. 
plt.draw() 
Powiązane problemy