2013-10-09 85 views
2

我有兩個或三個csv文件具有相同的標題,並希望繪製每個列在同一圖表上重疊的直方圖。使用熊貓覆蓋多個直方圖

下面的代碼給了我兩個單獨的數字,每個數字都包含每個文件的所有直方圖。有沒有一種緊湊的方法可以將它們一起繪製在使用pandas/matplot lib的相同圖上?我想象一下接近this但使用數據框。

代碼:

import pandas as pd 
import matplotlib.pyplot as plt 

df = pd.read_csv('input1.csv') 
df2 = pd.read_csv('input2.csv') 
df.hist(bins=20) 
df2.hist(bins=20) 

plt.show() 

回答

5
In [18]: from pandas import DataFrame 

In [19]: from numpy.random import randn 

In [20]: df = DataFrame(randn(10, 2)) 

In [21]: df2 = DataFrame(randn(10, 2)) 

In [22]: axs = df.hist() 

In [23]: for ax, (colname, values) in zip(axs.flat, df2.iteritems()): 
    ....:  values.hist(ax=ax, bins=10) 
    ....: 

In [24]: draw() 

enter image description here

+0

酷。這看起來像我想看到的!任何方式來強制執行相同數量的數據框(和範圍)的兩個數據框?我手動爲我的_df_設置了20個bin,但_df2_可能有不同的範圍,所以圖像看起來很奇怪。 –

+1

'''系列'的'hist'方法('values'的類型)可以用'bins'關鍵字參數來調用。我會將其添加到答案中。 –

+0

不錯。我沒有想到這一點。但是,由於範圍不同,我仍然沒有得到我想要的(即[鏈接](http://i.imgur.com/g2CxMVO.png))。我想這可能不那麼簡單。 –