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

如何在gnuplot中保留原有绘图并叠加圆形标记?

问题原因与解决方案

无法叠加的核心原因

  • 语法错误:你的plot命令最后一行notitle'多了一个多余的单引号,gnuplot解析到这里会报错,导致第二个绘图指令(圆形标记)无法执行,只能显示第一个曲线或圆形标记中的一个。
  • 坐标顺序/范围不匹配:你之前尝试用set object circle时的坐标是5.2055,3430(x=5.2055,y=3430),但自定义数据集$data里写的是3400,5.2055,相当于把x和y坐标搞反了;再加上你设置的plot范围是[3200:4400](针对x轴),如果shurb/foo.csv的x轴数据是5左右的小数值,曲线会被排除在这个x范围外,自然看不到曲线,只能看到圆形标记。

修正后的代码

set font "arial,12" 

set autoscale
set datafile separator comma

set xtics out nomirror
set ytics out nomirror
unset border
set border 3
set format y "%0.04s %cV " 
set format x 

# 修正坐标顺序,与你之前set object的坐标一致
$data <<EOD
5.2055,3430 
EOD

# 调整plot范围适配foo.csv的x轴区间,假设x轴集中在5左右,y轴3200-4400
plot [5:5.5] "shurb/foo.csv" u 1:2 w l lc rgb 'dark-green' title 'AP',\
     $data using 1:2 with circle lw 1 lc rgb 'red' notitle

额外说明

  • 如果不确定shurb/foo.csv的x轴范围,可以去掉plot后的[5:5.5],让gnuplot自动缩放,确保曲线和圆形都在显示范围内。
  • 也可以用set object的方式直接添加圆形,这种方式不需要自定义数据集,只需在plot前添加:
    set object circle at 5.2055,3430 size 25.5 lw 5 fc rgb "red" front
    plot "shurb/foo.csv" u 1:2 w l lc rgb 'dark-green' title 'AP'
    
    加上front参数可以确保圆形显示在曲线上方。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 00:56:09