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

如何在gnuplot中并排绘制带误差棒的两个文件数据

解决误差棒重叠并并排显示的方案

刚好碰到过类似的需求!要解决两组数据误差棒重叠的问题,核心思路是给同一X值对应的两组数据添加微小的X轴偏移量,让它们在坐标轴上并排展示,同时保留原始X刻度的显示。下面用Python的Matplotlib库给你实现完整的方案,完全匹配你的数据:

步骤1:整理数据并导入依赖库

首先把你的数据用数组存储,同时导入绘图需要的库:

import matplotlib.pyplot as plt
import numpy as np

# 你的Archive 1数据:X值、Y均值、误差值
archive1 = np.array([
    [10, 0.15127, 0.0986],
    [30, 0.14606, 0.10022],
    [60, 0.16739, 0.10298]
])
# 拆分列数据
x1, y1, err1 = archive1[:, 0], archive1[:, 1], archive1[:, 2]

# 你的Archive 2数据:X值、Y均值、误差值
archive2 = np.array([
    [10, 0.19177, 0.10253],
    [30, 0.17864, 0.12178],
    [60, 0.18111, 0.11272]
])
# 拆分列数据
x2, y2, err2 = archive2[:, 0], archive2[:, 1], archive2[:, 2]

步骤2:添加X轴偏移量

设置一个合适的偏移量(可以根据图表宽度调整),让两组数据在同一X刻度下左右分开:

# 偏移量:数值越小,两组数据靠得越近;反之越远
offset = 1.2
x1_shifted = x1 - offset  # Archive1的X向左偏移
x2_shifted = x2 + offset  # Archive2的X向右偏移

步骤3:绘制并排误差棒

用errorbar函数绘制带正负误差的误差棒,同时显示中点标记:

plt.figure(figsize=(8, 5))

# 绘制Archive1的误差棒:圆形标记+实线,误差棒带小帽子
plt.errorbar(
    x1_shifted, y1, yerr=err1,
    fmt='o-', capsize=6, color='#1f77b4',
    label='Archive 1'
)

# 绘制Archive2的误差棒:方形标记+实线,误差棒带小帽子
plt.errorbar(
    x2_shifted, y2, yerr=err2,
    fmt='s-', capsize=6, color='#ff7f0e',
    label='Archive 2'
)

# 配置图表细节
plt.xticks([10, 30, 60])  # 强制显示原始X刻度
plt.xlabel('X Value')
plt.ylabel('Y-Mean')
plt.title('Comparison of Y-Mean with Error Bars')
plt.legend()
plt.grid(True, alpha=0.3)  # 添加浅色网格,方便对比

plt.show()

关键细节说明

  • yerr=err:指定误差值,默认会绘制正负双向的误差棒,同时显示中点的均值标记
  • capsize:控制误差棒两端小帽子的长度,让误差范围更清晰
  • fmt:控制标记样式和线条样式,比如o-是圆形标记+实线,s-是方形标记+实线,方便区分两组数据
  • 偏移量offset:可以根据你的图表尺寸灵活调整,确保误差棒不重叠且视觉美观

内容的提问来源于stack exchange,提问作者Danilo Renato De Assis

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 09:19:38