利用海运条形图绘制宽幅数据帧 [英] Using seaborn barplot to plot wide-form dataframes

查看:19
本文介绍了利用海运条形图绘制宽幅数据帧的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试生成一个条形图,其中包含我的DataFrame中的所有观察结果,如下所示:Dataframe(行=年,列=对象,值=对象在年的冲突)

使用默认 pandas 时,我获得了正确的图形类型plot

cluster_yearly_results_df.plot.bar()

Correct Bar Plot

但是,我想使用海运,但在输入宽格式数据帧时遇到问题,使用:

sns.barplot(data=cluster_yearly_results_df)

我可以使用海运来做我想做的事情吗?

推荐答案

seaborn.barplot文档说明:

条形图用每个矩形的高度表示数值变量的中心趋势估计,并使用误差条提供有关该估计的不确定性的某些指示。

换句话说,其目的是用表示mean的单个条和表示std的错误条表示一个变量的多个值。您希望像pandas.plot.bar()那样用条形图表示单个值。

说到这里,您可以调整您的DataFrame,如下所示以匹配seaborn界面。以与您的DataFrame类似的DataFrame开头:

df = pd.DataFrame(np.random.randint(low=0, high=10, size=(10, 3)), columns=list('ABC'))

   A  B  C
0  7  6  4
1  3  5  9
2  3  0  5
3  0  1  3
4  9  7  7

使用.stack().reset_index()创建两列,唯一标识y中的每个值:

df = df.stack().reset_index()
df.columns = ['x', 'hue', 'y']

哪个选项产生:

   x hue  y
0  0   A  6
1  0   B  1
2  0   C  2
3  1   A  5
4  1   B  7

然后绘制:

sns.barplot(y='y', x='x', hue='hue', data=df)

这篇关于利用海运条形图绘制宽幅数据帧的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆