Pandas 绘制 3 个变量
Pandas plot on 3 variables
有人可以帮我定义可视化 pandas 中 3 列的最佳方法吗?我尝试使用堆积条形图并在 SO 上搜索其他解决方案,但没有任何效果。任何帮助表示赞赏。这是一个虚拟 pandas 数据框:
Name hour var
Nem 0 2
Kiz 4 1
Hue 5 2
Kiz 0 3
Nem 7 7
更新:这是你想要的吗?
(df.pivot_table(index='Name', columns='hour', values='var',
aggfunc='sum', fill_value=0)
.plot.bar(stacked=True)
)
解释:
In [55]: (df.pivot_table(index='Name', columns='hour', values='var',
....: aggfunc='sum', fill_value=0)
....: )
Out[55]:
hour 0 3 4 5 7
Name
Hue 0 6 0 2 0
Kiz 3 0 1 0 0
Nem 2 5 0 0 7
旧答案:
您可以为此使用 seaborn 模块:
import seaborn as sns
sns.barplot(x='Name', y='var', hue='hour', data=df, saturation=0.8)
数据:
In [20]: df
Out[20]:
Name hour var
0 Nem 0 2
1 Nem 3 5
2 Kiz 4 1
3 Hue 5 2
4 Kiz 0 3
5 Nem 7 7
6 Hue 3 6
有人可以帮我定义可视化 pandas 中 3 列的最佳方法吗?我尝试使用堆积条形图并在 SO 上搜索其他解决方案,但没有任何效果。任何帮助表示赞赏。这是一个虚拟 pandas 数据框:
Name hour var
Nem 0 2
Kiz 4 1
Hue 5 2
Kiz 0 3
Nem 7 7
更新:这是你想要的吗?
(df.pivot_table(index='Name', columns='hour', values='var',
aggfunc='sum', fill_value=0)
.plot.bar(stacked=True)
)
解释:
In [55]: (df.pivot_table(index='Name', columns='hour', values='var',
....: aggfunc='sum', fill_value=0)
....: )
Out[55]:
hour 0 3 4 5 7
Name
Hue 0 6 0 2 0
Kiz 3 0 1 0 0
Nem 2 5 0 0 7
旧答案:
您可以为此使用 seaborn 模块:
import seaborn as sns
sns.barplot(x='Name', y='var', hue='hour', data=df, saturation=0.8)
数据:
In [20]: df
Out[20]:
Name hour var
0 Nem 0 2
1 Nem 3 5
2 Kiz 4 1
3 Hue 5 2
4 Kiz 0 3
5 Nem 7 7
6 Hue 3 6