当我在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)
以上是关于当我在ax.bar中设置x时,使用.group方法时,如何使用matplotlib创建错误条?的主要内容,如果未能解决你的问题,请参考以下文章
当我在代码中设置属性时,情节提要选项是启用还是禁用是不是重要?
为啥 UIScrollView contentSize 在 IB 中被忽略,但当我在 viewDidAppear 方法中设置它时有效?