python - 如何在barplot python中取平均值
问题描述
我有一个由 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()
解决方案
MeanSpeed
假设您在列(0.12、2.25、2.77 等)中有浮点平均速度数据并且您正在使用数据框,您可以:
- 添加新列
MeanSpeedInt
:
df['MeanSpeedInt'] = int(df['MeanSpeed'])
MeanSpeedInt
按列分组并取平均值
df.groupby(by=['MeanSpeedInt']).mean()
它将导致列中的mean error
值Error
按MeanSpeed
组 0、1、2、3 等分组。类似的东西。代码未经测试,从内存中编写。
推荐阅读
- graph - 通过TSP的路线检查/中国邮递员问题
- django-models - 我应该在模型中使用什么页面,或者我应该只将它用作模板?
- javascript - 如何根据父级的当前拖动位置平移视图偏移
- reactjs - 无法覆盖深度嵌套组件的样式(Material-UI Jss 样式)
- java - Batch Status 卡在 STARTING 状态,
- python - 将 JSON 转换为 excel 时出现 Pandas 值错误
- javascript - 一个 javascript 会话可以容纳多少个字符?
- python - 如何创建两个值的序列?
- javascript - 如何用moment js做一个格式
- node.js - 如何在我的情况下使用 node.js 打开二进制文件 .nii 文件