gnuplot(深度版)
轻量命令行科学绘图,脚本可复现
一、一句话定位
轻量命令行科学绘图,脚本可复现
二、为什么是它:设计哲学与底层逻辑
gnuplot 是轻量命令行科学绘图:脚本驱动、完全可复现、支持 2D/3D/拟合/函数绘图,极轻量跨平台、历史悠久稳定。它面向要脚本化、无 GUI、服务器/程序内直接出图的场景。哲学是"终端抽象 + 脚本可复现"。代价是语法较旧、现代美感弱、统计/交互不如新工具、需适应命令行。适合数值程序里自动出图,出版图再交 Matplotlib 精修——它是"程序内出图的轻量垫片"。## 三、渲染管线与可复现性推导
设备抽象:同一脚本经不同 terminal(png/pdf/svg)输出不同格式:
出版用 terminal pdfcairo(矢量),预览用 pngcairo。脚本即规格 → 可复现、可批量,是它在"程序内自动出图"立足的根本;与 Matplotlib 的关系类似"轻量管道 vs 全功能库"。## 四、适用场景
- 要极轻量、脚本化的科学图
- C/Python/Fortran 程序里直接出图
- 服务器/无 GUI 环境
五、优点
- ✅ 极轻量、启动快、跨平台
- ✅ 脚本驱动,完全可复现
- ✅ 支持 2D/3D、拟合、函数绘图
- ✅ 免费开源,历史悠久稳定
六、缺点
- ⚠️ 语法较旧,现代美感弱
- ⚠️ 统计/交互能力不如新工具
- ⚠️ 需要适应命令行工作流
七、上手难度
中等
八、典型用途
- 科学函数/曲面图
- 程序内自动出图
- 轻量批量绘图
九、与谁搭配
数值计算程序里调用;出版图交给 Matplotlib
十、学习资源
- gnuplot 官方 demo 集
- 命令行绘图入门帖
本篇来自《绘图软件横评(深度版)》· 数学建模学习资料站 MCM520
实战案例
gnuplot 函数绘图实战
场景:需画多个数学函数曲线并叠加,导出 EPS 供 LaTeX 使用。
任务:用 gnuplot 绘制并导出矢量图。
完整代码(gnuplot)
set terminal postscript eps enhanced color
set output 'funcs.eps'
set xlabel 'x'; set ylabel 'f(x)'
set grid
plot sin(x) title 'sin(x)' lw 2, exp(-x/3)*cos(x) title 'damped' lw 2 dt 2, x/5 title 'linear' lw 1
set output
!
运行效果
输出 funcs.eps 含三条曲线:
- sin(x) 实线
- 衰减振荡 虚线
- 线性 细线
EPS 矢量格式在 LaTeX 中无限缩放不糊,适合公式配图。