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

Gnuplot技术咨询:绘制2D与3D图并分别保存为指定CairoLaTeX格式.tex文件的脚本正确性排查

你的Gnuplot脚本问题分析

嘿,我帮你检查了下你的Gnuplot脚本,发现几个小问题,会导致你无法正确生成想要的.tex文件,具体问题和修正后的版本如下:

存在的问题

  • 3D图的输出顺序错误:你当前是先执行splot绘图命令,再设置终端和输出文件,Gnuplot按顺序执行代码,这会导致3D图的内容不会被写入目标文件,必须先指定输出终端和路径,再执行绘图命令。
  • 预绘制终端未生效:你注释掉了set terminal unknown,这会让预绘制的内容在当前终端显示(比如弹出图形窗口),但我们预绘制的目的只是获取坐标轴极值,不需要显示,所以要启用这行命令。
  • 单位占位符未修正:xlabel里的[s?]和ylabel里的[m?]是未替换的占位符,生成的LaTeX文件里会保留问号,建议改成实际的单位(比如[s]和[m])。
  • 冗余操作:生成2D图后不需要额外的“重置终端”步骤,直接为3D图重新配置终端和输出即可。

修正后的脚本

# 通用设置
set tics font ", 14"
set tmargin at screen 0.7
set key at screen 0.3, 0.8 font ",14" spacing 1.3 samplen 0.8 box opaque
# 将边框置于背景层
set border lw 0.1 back
set xlabel '$t$ [s]' offset 1.7; set ylabel '$Position$ [m]' offset -1;

# 预绘制以获取极值(无显示)
set terminal unknown
plot "labo2-mag/data/output.out" using 1:2 with points pointtype 6 lc rgb "red" title '$x(t)$', \
"" using 1:3 with points pointtype 8 lc rgb "green" title '$y(t)$', \
"" using 1:4 with points pointtype 6 lc rgb "blue" title '$z(t)$'

# 生成2D图并保存为tex文件
set terminal cairolatex pdf size 10cm, 10cm
set out 'labo2-mag/latex/position-x-y-over-time.tex'
MAX_Y=GPVAL_Y_MAX
MIN_Y=GPVAL_Y_MIN
MAX_X=GPVAL_X_MAX
MIN_X=GPVAL_X_MIN
set xrange [MIN_X-(MAX_X-MIN_X)*0.1:MAX_X+(MAX_X-MIN_X)*0.01]
set yrange [MIN_Y-(MAX_Y-MIN_Y)*0.05:MAX_Y+(MAX_Y-MIN_Y)*0.05]
replot

# 生成3D图并保存为tex文件
set terminal cairolatex pdf size 10cm, 10cm
set out 'labo2-mag/latex/position-3d.tex'
splot "labo2-mag/data/output.out" using 2:3:4 with points pointtype 6 lc rgb "red" title '$pos(t)$'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.27 12:47:35