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

如何用Python绘制带平均值点的水平直线图表?

实现水平直线+平均值标记的Matplotlib图表

步骤说明

  1. 计算数据平均值:先对数据集求均值,确定水平直线的y轴基准值。
  2. 绘制水平直线:推荐用axhline(自动贯穿整个x轴范围),也可通过plt.plot指定x范围实现。
  3. 标记平均值点:用scatter在直线上标记对应位置的点,可选择标记所有数据对应点或单独突出均值点。

代码示例

import matplotlib.pyplot as plt
import numpy as np

# 示例数据集(替换为你的实际数据)
data = [3.2, 3.2, 3.1, 3.3, 3.2, 3.4]
mean_val = np.mean(data)
x = np.arange(len(data))  # x轴设为数据索引,也可替换为你的自定义x值

# 创建画布与轴对象
fig, ax = plt.subplots()

# 方法1:用axhline绘制水平直线(推荐,无需手动指定x范围)
ax.axhline(y=mean_val, color='#1f77b4', linestyle='-', linewidth=2, label='均值水平直线')

# 方法2:用plt.plot绘制水平直线(需匹配x轴长度构造y值列表)
# ax.plot(x, [mean_val]*len(x), color='#1f77b4', linestyle='-', linewidth=2, label='均值水平直线')

# 在直线上标记所有数据对应的点
ax.scatter(x, [mean_val]*len(x), color='red', s=50, zorder=5, label='数据对应点')
# 单独突出标记平均值的中心位置(可选)
ax.scatter(np.mean(x), mean_val, color='orange', s=80, zorder=6, label='均值点')

# 配置图表标签与图例
ax.set_xlabel('数据索引')
ax.set_ylabel('数值')
ax.set_title('水平直线与平均值标记')
ax.legend()

plt.show()

常见问题排查

  • 若用plt.plot绘制出非水平直线,大概率是x、y参数顺序搞反:正确写法是plt.plot(x轴数据, y轴数据),如果写成plt.plot(mean_val, x)会画出垂直线。
  • 要让直线贯穿整个x轴范围,优先用axhline,无需手动构造等长y值列表,更简洁不易出错。
  • 标记点被直线遮挡时,调整zorder参数让点的层级高于直线即可。

内容的提问来源于stack exchange,提问作者sP1999

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 23:20:34