2016-09-08 39 views
4

現在、このコード:サブプロットと色の異なる変数を持つpandasプロット?

count_df = (df[['rank', 'name', 'variable', 'value']] 
    .groupby(['rank', 'variable', 'name']) 
    .agg('count') 
    .unstack()) 
count_df .head() 
#    value       
# name   1lin STH_km27_lin ST_lin S_lin 
# rank variable         
# 1.0 NEE   24   115  33 28 
#  Qg   23   54  14  9 
#  Qh   37   124  11 28 
# ... 
count_df.plot(kind='bar') 

が私にこのプロットを取得しますかなり無駄です

useless subplots

.plot()コールでsubplots=Trueを使用して

bar plot with too much shit on it

は私にこれを取得しますなぜなら、色はサブプロットファセットと同じ変数。 namecount_df列見出し)あたりの色はまだありますが、サブプロットはvariableになるので、各サブプロットにはname/rankごとに1つのバーが表示されるように、サブプロットにはどの列またはインデックスを使用するかを選択する方法がありますか?グループ番号rankname

答えて

2

Hrm。私は、これはそれ自体でパンダでなんとかではない疑いがあるが、私はSeabornでそれを行う方法を発見:

になり
import seaborn as sns 

cdf = (df[['rank', 'name', 'variable', 'value']] 
      .groupby(['rank', 'variable', 'name']) 
      .agg('count')) 
sns.factorplot(x="rank", y="value", row="variable", hue="name", 
       data=cdf.reset_index(), kind='bar') 

私の目的のために十分近い

barplot by rank, variable, and name