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

Gnuplot双数据集两条曲线间阴影填充失效问题求助

解决Gnuplot中第二组曲线填充阴影不显示的问题

我来帮你搞定这个问题!你遇到的第二条曲线填充区域不显示的情况,通常是因为没有正确为第二组数据指定独立的填充样式,或者绘图命令的语法/顺序出了问题。结合你的数据格式(每行是x 均值 标准差),下面是完整的可运行方案:

完整Gnuplot脚本示例

# 配置pngcairo终端,支持填充和半透明效果
set terminal pngcairo enhanced size 800,600 font 'Arial,12'
set output 'dual_dataset_error_plot.png'

# 设置图表基础样式
set title '两组数据的均值±标准差对比'
set xlabel 'X轴变量'
set ylabel 'Y轴变量'
set key top right  # 图例放在右上角

# 核心绘图命令:先画填充区域,再画均值曲线(确保曲线在填充上方)
plot 'data1.txt' using 1:($2-$3):($2+$3) with filledcurves title 'Data1 标准差区域' lt 1 fill solid 0.3, \
     'data1.txt' using 1:2 with lines title 'Data1 均值' lt 1 lw 2, \
     'data2.txt' using 1:($2-$3):($2+$3) with filledcurves title 'Data2 标准差区域' lt 2 fill solid 0.3, \
     'data2.txt' using 1:2 with lines title 'Data2 均值' lt 2 lw 2

关键细节说明

  • 填充区域的定义:using 1:($2-$3):($2+$3) 直接从数据行计算出均值-标准差(下界)和均值+标准差(上界),with filledcurves会自动填充这两条曲线之间的区域。
  • 区分两组数据的样式:用lt 1和lt 2指定不同的线型(对应不同颜色),fill solid 0.3设置半透明填充(0=完全透明,1=完全不透明),避免两组填充区域互相遮挡。
  • 绘图顺序:先绘制填充区域,再绘制均值曲线,这样曲线会显示在填充区域上方,保证均值线清晰可见。
  • 命令分隔:每行绘图项末尾用反斜杠\换行,并用逗号分隔不同的绘图对象,这是Gnuplot多曲线绘图的标准语法。

常见问题排查

如果第二组填充还是不显示,你可以检查这几点:

  • 确认data2.txt的路径正确,或者数据格式和data1.txt完全一致(每行三个数值,没有空行或格式错误)。
  • 检查两组数据的X轴范围是否重叠,如果第二组数据的X值不在当前图表范围内,需要用set xrange [xmin:xmax]手动调整。
  • 确保没有重复使用相同的线型/颜色导致第二组填充被第一组完全覆盖,你也可以用lc rgb "#FF0000"这种方式直接指定颜色,更直观。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 07:50:22