You need to enable JavaScript to run this app. 如何使用Gnuplot在Linux下基于含不确定度数据绘制双值对比图
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Gnuplot在Linux下基于含不确定度数据绘制双值对比图

实现方案

针对欧式小数点分隔的结构化双值数据、带测量不确定度的对比图需求,通过单份bash脚本内嵌Gnuplot配置,在Linux环境下直接生成匹配参考效果的图表,全程无需手动修改原始数据格式。

前置准备
  • 确认系统已安装Gnuplot:Debian/Ubuntu 系列执行sudo apt update && sudo apt install gnuplot;RHEL/CentOS/Fedora 系列执行sudo dnf install gnuplot
  • 将提供的结构化数据保存为脚本同目录下的data.txt,保留原三行结构:第一行存储指标标题、第二行存储对应测量值、第三行存储对应测量不确定度
完整可运行Bash脚本

将以下内容保存为plot_comparison.sh,通过chmod +x plot_comparison.sh赋予执行权限后,运行./plot_comparison.sh即可生成目标图表。

#!/bin/bash
# 校验数据文件存在性
if [ ! -f "data.txt" ]; then
    echo "错误:当前目录未找到data.txt数据文件"
    exit 1
fi

# 数据预处理:将欧式逗号小数点转换为标准点号小数点,生成临时清洗文件
sed 's/,/./g' data.txt > data_clean.tmp

# 调用Gnuplot生成图表
gnuplot << EOF
# 输出配置
set terminal pngcairo enhanced font "DejaVu Sans,12" size 600,400 dpi 300
set output "comparison_plot.png"

# 坐标轴与风格配置
set xrange [-0.5:1.5]
set xtics ("value1" 0, "value2" 1)
set yrange [6.70:6.73]
set ytics 6.705, 0.01, 6.725
set border 3  # 仅保留左、下侧坐标轴边框,隐藏冗余的上、右侧边框
set grid y ls 0 lc "gray" lw 0.5  # 浅灰色水平参考网格
set key off  # 关闭图例,直接通过X轴刻度标注指标名称
set bars 0.12  # 设置误差棒两端短横的长度
set pointsize 1.8

# 逐行读取清洗后的数据
f_in = "data_clean.tmp"
if (!file_exists(f_in)) {
    print "错误:临时数据文件缺失"
    exit -1
}
read f_in dummy  # 跳过第一行的指标标题
read f_in measure_line  # 读取第二行测量值
read f_in uncertainty_line  # 读取第三行不确定度
close f_in

# 拆分单行列值
y1 = word(measure_line, 1)
y2 = word(measure_line, 2)
e1 = word(uncertainty_line, 1)
e2 = word(uncertainty_line, 2)

# 绘制带误差棒的对比散点
plot "-" using 1:2:3 with yerrorbars \
    pt 7 ps 1.8 lw 2 lc "black"
0 y1 e1
1 y2 e2
e
EOF

# 清理临时文件
rm data_clean.tmp
echo "图表已生成:comparison_plot.png"
效果匹配说明
  • 自动兼容原始数据中的欧式逗号小数点格式,不需要手动调整数据内容
  • 图表元素完全对齐参考效果:两个测量值沿X轴水平均匀排布,搭配实心圆点标记与垂直误差棒,隐藏冗余的图框元素、浅灰色水平网格辅助读数
  • 输出为300DPI的PNG格式图片,适配报告、论文的排版需求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.28 19:24:03