2012-11-21 140 views
4

我有一個熊貓數據幀df包含兩個股票的財務比率數據:如何barplot通過子索引對齊熊貓數據框列?

>>> df 
        ROIC ROE 
STK_ID RPT_Date    
600141 20110331 0.012 0.022 
     20110630 0.031 0.063 
     20110930 0.048 0.103 
     20111231 0.063 0.122 
     20120331 0.017 0.033 
     20120630 0.032 0.077 
     20120930 0.050 0.120 
600809 20110331 0.536 0.218 
     20110630 0.734 0.278 
     20110930 0.806 0.293 
     20111231 1.679 0.313 
     20120331 0.666 0.165 
     20120630 1.039 0.257 
     20120930 1.287 0.359 

我嘗試繪圖比例‘‘的股票‘ROIC’&’ROE 600141’&‘600809’放在同'RPT_Date'來衡量他們的表現。

df.plot(kind='bar'),給出以下的

enter image description here

圖表繪製 '600141' 的左側, '600809' 的右側。在同一報告日期'RPT_Date'比較兩隻股票的'ROIC'&'ROE'有些不便。

我想要將'ROI'&'ROE'條放在同一組中(同組每組4條),並且x軸僅標記'RPT_Date',即相同'RPT_Date'將清楚地告訴兩隻股票的區別。

如何做到這一點?

如果我df.plot(kind='line'),那隻能說明兩行,但它應該是四行(2股* 2倍的比例): enter image description here

它是一個錯誤,或者我能做些什麼來糾正呢?謝謝。

我正在使用熊貓0.8.1。

回答

8

如果您取消堆棧STK_ID,則可以根據每個RPT_Date創建並排圖。

In [55]: dfu = df.unstack("STK_ID") 

In [56]: fig, axes = subplots(2,1) 

In [57]: dfu.plot(ax=axes[0], kind="bar") 
Out[57]: <matplotlib.axes.AxesSubplot at 0xb53070c> 

In [58]: dfu.plot(ax=axes[1]) 
Out[58]: <matplotlib.axes.AxesSubplot at 0xb60e8cc> 

enter image description here

+1

很好的解決方案。謝謝。 – bigbug