You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中如何对barplot各速度区间对应误差值求平均并绘图

实现按速度区间求平均误差的方法

你可以用pandas内置的cut方法完成自动分箱,配合groupby分组统计,无需手动逐段写过滤逻辑,可适配任意区间宽度、任意范围的分箱需求,完整实现代码如下:

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd

plt.figure(figsize=(24, 12), dpi=80)

# 1. 定义分箱边界:按步长1划分,范围从0到速度最大值向上取整,可按需调整
max_speed = summ['MeanSpeed'].max()
bins = np.arange(0, np.ceil(max_speed) + 1, step=1)

# 2. 为每行数据分配对应的速度区间,right=False表示区间为左闭右开[0,1),[1,2)...和你手动计算的规则一致
summ['speed_interval'] = pd.cut(summ['MeanSpeed'], bins=bins, right=False)

# 3. 按区间分组,计算每组的平均误差,自动过滤无数据的空区间
interval_avg_error = summ.groupby('speed_interval')['Error'].mean().dropna()

# 4. 绘制柱状图
x_axis = np.arange(len(interval_avg_error))
plt.bar(x_axis, interval_avg_error.values)
# 配置x轴刻度为区间名称,也可自行替换为其他显示格式
plt.xticks(x_axis, [f"{int(interval.left)}~{int(interval.right)}" for interval in interval_avg_error.index])
plt.xlabel('速度区间')
plt.ylabel('平均误差')

plt.show()

如果需要调整区间宽度,只需要修改np.arange的step参数即可,比如步长设为2就是02、24的区间划分。


内容的提问来源于stack exchange,提问作者Poyita de troya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 18:45:02