MCM520 ← 资料站首页 gnuplot(深度版) 打开交互阅读器 →

gnuplot(深度版)

轻量命令行科学绘图,脚本可复现

一、一句话定位

轻量命令行科学绘图,脚本可复现

二、为什么是它:设计哲学与底层逻辑

gnuplot 是轻量命令行科学绘图:脚本驱动、完全可复现、支持 2D/3D/拟合/函数绘图,极轻量跨平台、历史悠久稳定。它面向要脚本化、无 GUI、服务器/程序内直接出图的场景。哲学是"终端抽象 + 脚本可复现"。代价是语法较旧、现代美感弱、统计/交互不如新工具、需适应命令行。适合数值程序里自动出图,出版图再交 Matplotlib 精修——它是"程序内出图的轻量垫片"。## 三、渲染管线与可复现性推导
设备抽象:同一脚本经不同 terminal(png/pdf/svg)输出不同格式:

script →set terminal T output in format(T) \text{script}\ \xrightarrow{\text{set terminal }T}\ \text{output in format}(T)

出版用 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 中无限缩放不糊,适合公式配图。