gnuplot循环plot命令缺失曲线问题排查
Gnuplot循环plot命令少绘制一条曲线的错误分析
正常工作的代码(绘制4条曲线)
plot "a.csv" using 1:2 lw 4 with lines, \ '' using 1:3 lw 4 with lines, \ "b.csv" using 1:2 lw 4 with lines, \ '' using 1:3 lw 4 with lines
存在问题的循环代码(仅绘制3条曲线)
plot for [flnm in "a.csv b.csv"] \ flnm using 1:2 lw 4 with lines, \ '' using 1:3 lw 4 with lines
错误原因
问题出在循环体的语法结构:Gnuplot的for循环默认仅对紧随其后的单个绘图项生效。原代码中,逗号分隔的第二个绘图项'' using 1:3 ...并没有被包含在循环迭代范围内,只会执行一次(对应第一次循环的a.csv),最终仅生成3条曲线:
a.csv的1:2a.csv的1:3b.csv的1:2
缺少了b.csv的1:3这条曲线。
修正方法
需要将循环内的多个绘图项用大括号{}包裹,确保每次循环都完整执行两个绘图项:
plot for [flnm in "a.csv b.csv"] { \ flnm using 1:2 lw 4 with lines, \ '' using 1:3 lw 4 with lines \ }
内容的提问来源于stack exchange,提问作者user1823664
相关产品推荐
相关产品推荐

