2016-09-29 3 views
0

Ich möchte die Häufigkeit von x Tick-Markierungen reduzieren. Die x Werte sind Datum:Legen Sie XTICKs Label-Frequenz mit Python

date=['20120101','20120101','20120101',...'20121231'] 

Ich habe 24 Zeitschritte für jeden Tag des Jahres. Und ich möchte die Xticks alle 24 Zeitschritte (d. H. Jeden Tag) beschriften.

Hier ist der Code, den ich benutze:

date=[] 
val=[] 
for lig in file(liste.txt): 
    ligne=lig.split('') 
    date.append(ligne[0]) 
    val.append(ligne[1]) 

plt.plot(date,val) 
plt.setp(plt.gca().xaxis.get_majorticklabels(),rotation=90) 
plt.gca().xaxis.set_major_formatter(mdates.DateFormatter('%y%m%d')) 
plt.gca().xaxis.set_major_locator(mdates.DayLocator(interval=4)) 
plt.show() 

Und hier ist mein Grundstück gibt es kein xticks Etikett!

enter image description here

Antwort

1

Da es keine komplette und Arbeitsbeispiel ist, müssen wir raten: Ist Ihr date richtig als Datetime-Objekt erkannt? Wenn nicht, würde die set_major_locator im Datumsformat keine x-Ticks ergeben.

Sie können dies mit etwas wie date = datetime.datetime.strptime(date, '%Y%m%d') erreichen.

+1

Ich würde hinzufügen, dass die Dokumentation eindeutig angibt, dass die Formatzeichenfolge ['strftime'] (http://strftime.org/) –

+0

Ich habe mein Beispiel abgeschlossen haben. Wenn ich date = datetime.datetime.strftime (Datum, '% y% m% d') hinzufüge, gibt es den Deskriptor 'strftime' zurück, benötigt ein 'datetime.date'-Objekt, erhält aber eine' list ' – user5276228

+1

Das ist es zunächst nicht was ich ein funktionierendes Beispiel nenne. Es gibt zwei Tippfehler: 'plt.gca(). Xaxix. (...)' und 'dateFormatter ('% y% m% d')', die beide zu einem 'Attributfehler' führen. Zweitens scheint es, als müssten Sie jedes Element einzeln behandeln, wie z.B. Erstellen Sie eine zweite leere Liste 'date2 = []' und füllen Sie sie dann mit 'für itm in date: date2.append (datetime.datetime.strptime (itm, '% Y% m% d')) '. Sie müssen 'date2' anstelle von' date' dann plotten, was übrigens ein unglücklicher Name für eine Variable ist. (Ich bin sicher, es gibt eine mehr pythische Art, dies zu schreiben! Ich habe keine Erfahrung mit Lambda-Funktionen.) – nostradamus

Verwandte Themen