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

Gnuplot replot命令失效:仅生成首个绘图问题求助

Gnuplot replot失效仅显示单条曲线的解决方案

问题核心是**-persist参数与set output的冲突**:
当脚本开头使用#!/usr/bin/gnuplot -persist时,Gnuplot会自动切换终端——第一个plot命令会写入指定的png文件,但后续replot会被强制切换到交互式终端(用于-persist的预览窗口),导致后续曲线无法写入png文件,最终仅显示第一条曲线。

两种有效解决方法:

方法1:移除-persist参数

你的需求是生成png文件,不需要交互式预览窗口,直接修改脚本开头:

#!/usr/bin/gnuplot

保留原有的plot+replot命令即可,此时所有绘图操作会持续输出到graph1.png中。

方法2:将所有曲线合并到单个plot命令

更推荐这种写法,语法清晰且不受-persist影响,用\换行分隔多个绘图项:

#!/usr/bin/gnuplot -persist
reset
NO_ANIMATION = 1

set terminal png size 1920, 1080
set output 'graph1.png'
set size 1, 1

set key left box

set title "Кусочно-линейный график"
set xlabel "Количество элементов, шт"   
set ylabel "Время, мкс"

set grid
plot './preproc/average_O0_A0_S0.txt' with linespoints title 'O0 a[i]' lc "red", \
     './preproc/average_O0_A1_S0.txt' with linespoints title 'O0 *(a + n)' lc "blue", \
     './preproc/average_O0_A2_S0.txt' with linespoints title "O0 *p" lc "green", \
     './preproc/average_O2_A0_S0.txt' with linespoints title "O2 a[i]" lc "yellow", \
     './preproc/average_O2_A1_S0.txt' with linespoints title "O2 *(a + n)" lc "black", \
     './preproc/average_O2_A2_S0.txt' with linespoints title "O2 *p" lc "purple"

额外验证建议

可以先单独测试某一个replot对应的文件,比如执行:

plot './preproc/average_O0_A1_S0.txt' with linespoints title 'O0 *(a + n)' lc "blue"

确认数据文件本身能正常绘图,排除数据格式问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 15:50:11