2016-04-25 7 views
1

Ich lese eine Excel-Datei mit Pandas und versuche, eines ihrer Blätter zu lesen, um einige Ergebnisse zu plotten. Unten ist mein Code;Wie mache ich die Zeitspalte zur x-Achse eines Diagramms?

df = pd.read_excel('Base_Case-Position.xlsx',sheetname = 'Sheet1', header=0, parse_col="A:E") 
print df 
    Time  WB  NB  WBO  SBO 
0 09:00:00 0.242661 0.839820 0.449634 0.484678 
1 10:00:00 0.809247 1.545173 1.129107 1.147414 
2 11:00:00 1.519679 2.051029 1.766170 1.699770 
3 12:00:00 1.748682 2.291056 2.018005 1.879778 
4 13:00:00 1.790151 2.384782 2.123876 1.913225 
5 14:00:00 1.966337 2.612614 2.344493 2.094139 
6 15:00:00 2.295261 3.030992 2.686752 2.503890 
7 16:00:00 2.412628 3.232904 2.772683 2.737191 
8 17:00:00 2.476746 3.354741 2.781410 2.923059 

Ich mag würde Spalten WB, NB, WBO und SBO gegen die Zeit plotten und möchten Zeitspalte als Xtick hinzuzufügen.

Unten ist die Art, wie ich es im Moment mache, aber nicht OK für mich, da ich Etiketten manuell einrichte. Ich habe eine Liste für Xticks erstellt. Gibt es einen besseren Weg, dies zu tun?

%matplotlib inline 
import matplotlib.pyplot as plt 
a = np.arange(9) 
plt.scatter(a,df.WB,color='r',alpha=1) 
plt.plot(a,df.NB, color='g',alpha=1) 
plt.plot(a,df.WBO, color='k',alpha=1) 
plt.plot(a,df.SBO,color='m',alpha=1) 
plt.xlabel('Time (hr)') 
plt.ylabel('Energy Consumption (kWh)') 
labels = ['9:00', '10:00', '11:00', '12:00','13:00', '14:00', '15:00', '16:00','17:00'] 
plt.xticks(a,labels,rotation='horizontal') 
plt.grid(True) 
plt.tick_params(which='major', length=4) 
plt.tick_params(which='minor', length=4) 
plt.show() 

Antwort

1

Nun, würde dies die einfachste Weg, es zu tun:

df.set_index('Time').plot() 
plt.xticks(map(str, df['Time']), rotation=50) 
plt.show() 

enter image description here

+0

Vielen Dank für Ihre Antwort, aber ich würde X-Achse sein, genau gleich wie in der Zeitspalte gefallen nicht wie auf der x-Achse. – Muhammad

+0

Siehe Bearbeiten. Sie müssen nur eine Möglichkeit finden, die Sekunden zu entfernen, wenn Sie in eine Zeichenfolge konvertieren. – Shovalt

Verwandte Themen