gnuplot设置png/ps输出图片尺寸失败终端出现乱码问题咨询
gnuplot 5.2设置png/ps终端尺寸失效、输出乱码解决方案
你遇到的乱码和尺寸设置失效问题,本质是使用逻辑错误,和size参数本身无关:
- 当你在交互式wxt终端中执行
set term png时,gnuplot会将后续的绘图输出切换为png二进制格式,你没有指定输出文件的情况下,二进制内容会直接打印到当前终端窗口,就会出现乱码、随机表情符号,同时图片也不会正常生成。 - 去掉
set term png后脚本正常运行,是因为gnuplot默认使用wxt交互式终端,输出直接渲染到GUI窗口,不需要输出文件配置。
修正方法
1. 补全脚本的输出配置
非交互式文件输出终端(png、ps、pdf等)必须搭配set output指定输出文件路径,完整脚本示例如下:
reset # 推荐使用pngcairo终端,相比默认png终端渲染更稳定,字体和尺寸适配性更好 set term pngcairo size 800,400 font ",16" # 指定输出文件名,所有绘图内容会写入该文件,不会输出到终端 set output "demo.png" # 绘图参数配置 set xlabel "name 2" set ylabel "name1" set xtics font ",16" set ytics font ",16" set title "title" offset 0,-3.5 font ",16" set key font ",14" left set ytics (11, 12, 13, 14) set xtics 0.5 # 补充你的实际绘图命令,此处为示例 plot sin(x) with lines lw 2 # 关闭输出文件,强制缓冲区内容写入完成 set output # 如需执行完后回到wxt交互式窗口,添加以下行 set term wxt
2. 批量生成的最优方案
不要进入gnuplot交互式界面后执行load命令,直接在系统终端(Windows cmd、Linux/macOS bash等)执行以下命令运行脚本:gnuplot your_script.gp
该方式不会触发交互式终端和文件输出终端的冲突,适合批量生成统一尺寸的图片,你可以在脚本中加入循环逻辑,一次性生成多张规格一致的图片。
3. PS格式配置参考
ps/eps格式的设置逻辑完全一致,示例配置如下:
reset set term postscript eps enhanced color size 16cm,8cm font ",16" set output "demo.eps" # 其余绘图配置、plot命令不变 plot cos(x) with lines lw 2 set output
按以上逻辑修改后,尺寸参数会正常生效,不会出现终端乱码问题。
内容的提问来源于stack exchange,提问作者JESUS_M
相关产品推荐
相关产品推荐

