【问题标题】:How to average values in barplot python如何在barplot python中取平均值
【发布时间】:2021-11-16 16:34:09
【问题描述】:

我有一个由 330 个值组成的数据集,我想在其中显示速度和错误之间的相关性。如果我按原样显示情节,则很难检查相关性。然后,我想根据速度范围平均误差。我的意思是,每个条形代表 0 和 1、1 和 2 之间的平均速度,依此类推。我现在的代码是这样的。

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.pyplot import figure

figure(figsize=(24, 12), dpi=80)
# Make a random dataset:
height = summ['Error']
bars = summ['MeanSpeed']
y_pos = np.arange(len(bars))

# Create bars
plt.bar(y_pos, height)

# Create names on the x-axis
plt.xticks(y_pos, bars)

# Show graphic
plt.show()

如何平均每个速度范围的值?

我想要这样的东西:

我通过这样做来创建它:

m1=np.mean(summ[(summ['MeanSpeed']>=0)&(summ['MeanSpeed']<=1)])[4]
m2=np.mean(summ[(summ['MeanSpeed']>=1)&(summ['MeanSpeed']<=2)])[4]
m3=np.mean(summ[(summ['MeanSpeed']>=2)&(summ['MeanSpeed']<=3)])[4]
m4=np.mean(summ[(summ['MeanSpeed']>=3)&(summ['MeanSpeed']<=4)])[4]
plt.bar([1,2,3,4], [m1,m2,m3,m4])
plt.show()

【问题讨论】:

  • 您能否更好地解释您的问题或提供更多示例代码?
  • 如果没有数据,这个问题就无法重现。这个问题需要SSCCE。请参阅How to provide a reproducible dataframe,然后edit 您的问题,然后将剪贴板粘贴到代码块中。始终提供minimal reproducible example代码、数据、错误、当前输出和预期输出,如formatted text。如果相关,绘图图像是可以的。如果您不包含 mre,则该问题可能会被否决、关闭和删除。

标签: python matplotlib bar-chart average


【解决方案1】:

假设您在 MeanSpeed 列(0.12、2.25、2.77 等)中有浮动平均速度数据,并且您正在使用数据框,您可以:

  • 添加新列MeanSpeedInt
df['MeanSpeedInt'] = int(df['MeanSpeed'])
  • MeanSpeedInt 列进行平均分组
df.groupby(by=['MeanSpeedInt']).mean()

这将导致Error 列中的mean error 值按MeanSpeed 组0、1、2、3 等分组。 类似的东西。代码未经测试,凭记忆编写。

【讨论】:

  • 我应该添加两行吗?我应该在哪里添加第二个?创建新列后,我无法根据新列对错误进行平均和分组
  • 请用示例数据和列给出更详细和有效的问题描述。更好地描述条形图的外观(也许图片会有所帮助)。
  • 也许你也在寻找这个绘图功能 - matplotlib.org/stable/gallery/lines_bars_and_markers/…
  • 我已经更新了帖子
猜你喜欢
  • 2018-11-14
  • 2013-12-18
  • 2020-10-01
  • 2021-11-28
  • 2015-10-19
  • 1970-01-01
  • 1970-01-01
  • 2014-04-20
  • 2011-12-04
相关资源
最近更新 更多