2014-01-22 15 views
7

ich Pandas Datenrahmen wie dieses:Wie ein Pandas Multiindex Datenrahmen mit allen xticks plotten

     content 
date       
2013-12-18 12:30:00  1 
2013-12-19 10:50:00  1 
2013-12-24 11:00:00  0 
2014-01-02 11:30:00  1 
2014-01-03 11:50:00  0 
2013-12-17 16:40:00  10 
2013-12-18 10:00:00  0 
2013-12-11 10:00:00  0 
2013-12-18 11:45:00  0 
2013-12-11 14:40:00  4 
2010-05-25 13:05:00  0 
2013-11-18 14:10:00  0 
2013-11-27 11:50:00  3 
2013-11-13 10:40:00  0 
2013-11-20 10:40:00  1 
2008-11-04 14:49:00  1 
2013-11-18 10:05:00  0 
2013-08-27 11:00:00  0 
2013-09-18 16:00:00  0 
2013-09-27 11:40:00  0 

Datum der Index. ich reduzieren die Werte in Monaten mit:

dataFrame = dataFrame.groupby([lambda x: x.year, lambda x: x.month]).agg([sum]) 

die Ausgänge:

  content 
      sum 
2006 3  66 
    4  65 
    5  48 
    6  87 
    7  37 
    8  54 
    9  73 
    10  74 
    11  53 
    12  45 
2007 1  28 
    2  40 
    3  95 
    4  63 
    5  56 
    6  66 
    7  50 
    8  49 
    9  18 
    10  28 

Nun, wenn ich diesen Datenrahmen zeichnen, ich möchte, dass die x-Achse jeden Monat/Jahr als Zecke zeigen. Ich habe versucht, Xticks zu setzen, aber es scheint nicht zu funktionieren. Wie könnte dies erreicht werden? Dies ist mein aktueller Zielorte mit dataFrame.plot():

enter image description here

Antwort

10

können Sie verwenden set_xtick() und set_xticklabels():

idx = pd.date_range("2013-01-01", periods=1000) 
val = np.random.rand(1000) 
s = pd.Series(val, idx) 

g = s.groupby([s.index.year, s.index.month]).mean() 

ax = g.plot() 
ax.set_xticks(range(len(g))); 
ax.set_xticklabels(["%s-%02d" % item for item in g.index.tolist()], rotation=90); 

Ausgang:

enter image description here

+0

Wie die xticks einstellen zum ersten Tag eines jeden Monats? – HyperCube

+0

Siehe meine Antwort hier: https://stackoverflow.com/questions/39714724/pandas-plot-x-axis-ticke-frequency-how-can-i-show-more-ticks/48401584#48401584 –

+1

Könnte ein bisschen sein spät ;-) –

Verwandte Themen