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