当我在ax.bar中设置x时,使用.group方法时,如何使用matplotlib创建错误条?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了当我在ax.bar中设置x时,使用.group方法时,如何使用matplotlib创建错误条?相关的知识,希望对你有一定的参考价值。

我正在做一个有4个子图(2x2)的图形。我的数据目前是以长条形式排列的。

group score

1       2
1       3
1       2
1       3
2       1
2       4
2       5
2       1
3       2
3       1
3       6
3       4

我想让每个条形图都有一个误差条,代表平均值的标准误差。

我试着把yerr的值放进去,但每次放进去都会得到一个错误信息,说它们的数组大小不匹配,我相信这是因为我的x值使用了df.group。我是否应该用其他方法来表示我的x和y?条形图是我想要的样子,只是我不能让误差条工作。我应该用什么来代替?

fig, ((ax1, ax2), (ax3, ax4)) = plt.subplots(nrows=2, ncols=2, sharex=False, sharey=True, figsize=(15,7))
ax1.bar(df.group, df["score"], yerr = [?,?])
plt.show()
答案

你不能直接使用组列。你想使用 GroupBy() 其次 aggregate 来计算你在每个组中想要的值。

d="""group   score

1       2
1       3
1       2
1       3
2       1
2       4
2       5
2       1
3       2
3       1
3       6
3       4"""

df = pd.read_csv(StringIO(d), sep='s+')
gr = df.groupby('group')['score'].aggregate(['mean','sem'])

fig, ax = plt.subplots()
ax.bar(x=gr.index, height=gr['mean'], yerr=gr['sem'], capsize=10)
ax.set_xticks(gr.index)

enter image description here

以上是关于当我在ax.bar中设置x时,使用.group方法时,如何使用matplotlib创建错误条?的主要内容,如果未能解决你的问题,请参考以下文章

如何在R中设置更多颜色?

当我在代码中设置属性时,情节提要选项是启用还是禁用是不是重要?

导航栏 Alpha 值未在 iOS 7 中设置

为啥 UIScrollView contentSize 在 IB 中被忽略,但当我在 viewDidAppear 方法中设置它时有效?

无法使用 jQuery 和 value 方法在 textarea 中设置文本

当我在构建选项中设置 iPhone 开发人员代码签名身份时,为啥 XCode 会继续尝试安装临时配置文件?