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?
嗯。我怀疑这在 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)
结果是:
这对于我的目的来说已经足够接近了
| 归档时间: |
|
| 查看次数: |
448 次 |
| 最近记录: |