2017-01-29 6 views
3

私はこれを理解するのに最も苦労しました。私は複数のカテゴリフィールドを持つデータフレームを持っており、それらをすべてヒストグラムに重ねて、目標変数(Income)を各ヒストグラムに重ねてヒストグラムとして描画したいと考えています。私はパンダを使ってヒストグラムを作成し、すべてのフィールドを反復することができるようにしたいと考えていましたが、レースをプロットして収入をオーバーレイしようとすると、伝説にはNoneと表示され、別の以下はパンダの複数のヒストグラムオーバーレイを使用したデータフレーム

あなたがplotを呼び出す方法が正しくない鉱山と私は試してみました、最新のものに類似したサンプルデータフレーム..

exampledf = {'Race': ['Black', 'White', 'Asian', 'White', 
        'White', 'Asian', 'White', 'White', 
        'White', 'Black', 'White', 'Asian'], 
     'Income': ['>=50k', '>=50k', '>=50k', '>=50k', 
        '>=50k', '<50k', '<50k', '>=50k', 
        '>=50k', '>=50k', '<50k', '>=50k',], 
     'Gender': ['M', 'F', 'F', 'F', 
        'M', 'M', 'M', 'M', 
        'M', 'M', 'M', 'M']} 
exampledf =pd.DataFrame(exampledf) 
exampledf.groupby(['Income','Race']).size().plot(x=exampledf['Race'], kind='bar', color=['r','b'], logy=False, legend=True) 

答えて

2

純粋なパンダを使用してジェームズの答えはあなたが探しているものと思われるが、私は、その驚くべきシンプルさのデータフレームからの可視化のためにaltairに目を向け、より多くのしてきました。

あなただけのチャートに寸法にあなたのフレーム列を割り当てることによって、あなたが望むような何かを得ることができます:

from altair import Chart 

Chart(exampledf).mark_bar(
).encode(
    y='Race', 
    x='count(*)', 
    color='Income' 
) 

enter image description here

か:

Chart(exampledf).mark_bar(
).encode(
    column='Race', 
    y='count(*)', 
    x='Income' 
) 

enter image description here

+0

すごいのそれらは本当にきれいに見えます。 – James

+0

はい、同意します。 Altairは基本的に、VegaとD3を作った同じグループのVega-liteのラッパーであり、プロットを見栄え良くするのに非常に優れています。 – foglerit

2

です。パンダを使用して棒グラフに変数xを渡すことはありません。それは自動的にインデックスをx軸として使用します。しかし、複数のインデックスを持っているので、おそらくあなたが望むチャートを与えることはありません。

レース対収入の棒グラフを作成するには、インデックス(行)としてのレース、カラムとしての収入、値としてのカウントが必要です。 groupbyが欲しくない場合は、データをピボットする必要があります。この場合、.pivot_tableを使用します。

これは、レース(pandas .plotのx値)と列としての異なる収入(.plotのy値)としてインデックスを持つ新しいデータフレームを作成します。

pt = exampledf[['Race','Income']].pivot_table(index='Race', columns='Income', 
               aggfunc=len, fill_value=0) 
# output of pt: 
# Income <50k >=50k 
# Race 
# Asian  1  2 
# Black  0  2 
# White  2  5 

# make the plot 
pt.plot.bar() 

ここはIPythonを使用した画像です。 Jupiter Notebookを使用したデフォルトはよりよく見えます。

enter image description here

関連する問題