2012-10-16 32 views
5

Powiel możliwe:
Creating graph with date and time in axis labels with matplotlibJak zmienić format daty przy użyciu Matplotlib w Pythonie

nie wiem jak zmienić format daty podczas drukowania z matplotilib podczas moich danych ma pełne data w moim słowniku, tylko wykresy godzin, minut, sekund

from datetime import datetime 
import matplotlib.pyplot as plt 


dico = {'A01': [(u'11/10/12-08:00:01', 2.0), (u'11/10/12-08:10:00', 10.0), \ 
       (u'11/10/12-08:20:01', 5.0), (u'11/10/12-08:30:01', 15.0), \ 
       (u'11/10/12-08:40:00', 7.0), (u'11/10/12-08:50:01', 45.0)], 
     'A02': [(u'11/10/12-08:00:01', 10.0), (u'11/10/12-08:10:00', 12.0), \ 
       (u'11/10/12-08:20:01', 15.0), (u'11/10/12-08:30:01', 10.0), \ 
       (u'11/10/12-08:40:00', 17.0), (u'11/10/12-08:50:01', 14.0)]} 

x = [] 
y = [] 
for key in sorted(dico.iterkeys()): 
    points = [(datetime.strptime(i[0], "%d/%m/%y-%H:%M:%S"), \ 
       i[1]) for i in dico[key]] 
    points.sort() 
x, y = zip(*points) 
plt.plot(x, y, label=key) 
# plotting 
plt.gcf().autofmt_xdate() 
plt.legend(loc='upper right') 
plt.xlabel('Dates') 
plt.ylabel("titre") 
plt.title("Modbus") 
plt.show() 
+0

Ten duplikat pojawia się przy wyszukiwaniu "daty w formacie osi matplotlib" za pomocą google. –

Odpowiedz

12

Rozwiązanie:

from matplotlib.dates import DateFormatter 
formatter = DateFormatter('%Y-%m-%d %H:%M:%S') 
plt.gcf().axes[0].xaxis.set_major_formatter(formatter) 
Powiązane problemy