大熊猫情节用不同的变量为子图和颜色?

nau*_*101 5 python plot matplotlib 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')
Run Code Online (Sandbox Code Playgroud)

给我这个情节:

条形图上有太多的东西

subplots=True.plot()通话中使用让我这样:

无用的子图

这是非常没用的,因为颜色映射到与子图表面相同的变量.有没有办法选择哪个列/索引用于子绘图,这样我仍然可以有每个name(count_df列标题)的颜色,但variable每个子图,以便每个子图有一个条,每个name/rank分组rank,和是的name

nau*_*101 2

嗯。我怀疑这在 pandas 中是不可能实现的,但我在 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')
Run Code Online (Sandbox Code Playgroud)

结果是:

按等级、变量和名称排列的条形图

这对于我的目的来说已经足够接近了