Appearance
通过二维数据绘制二维图像
在本教程中,我们将完整地走一遍从数据准备到图表生成的全过程,深入讲解 Gnuplot 最核心的绘图命令!
一、准备数据
在 Liii STEM 中,您有两种方式为 Gnuplot 准备数据文件。
方法一:手动创建命令行数据块(适合少量数据)
准备一组简单的实验数据作为数据块,第一列作为 X 轴数据,第二列作为 Y 轴数据:
$data << EOD
1 2.3
2 4.1
3 5.5
4 4.8
5 7.2
EOD方法二:引入外部数据文件(适合已有数据文件)
如果您已有数据文件(如 data.txt, measurements.log 等),可以直接在后续的 Gnuplot 代码块中通过文件路径引用它。
文件内容示例:
#表格1.
1 2.3
2 4.1
3 5.5
4 4.8
5 7.2请确保您知道文件的准确存储位置,例如 Mac:~/Documents/data.txt,Windows:D:\exp_data.txt。
二、绘制图形
plot 是 Gnuplot 中最基本和最常用的命令,用于绘制二维图形 。它的基本语法是:
plot "文件名" [可选修饰词]文件名:这是您要绘图的数据文件的名称,也可以使用
$data替代。如果文件不在 Gnuplot 的当前工作目录中,您需要使用完整的路径。
基础示例
比如我们在 LiiiSTEM 中插入一个 Gnuplot 代码块,并输入以下最简单的绘图命令:
$data << EOD
1 2.3
2 4.1
3 5.5
4 4.8
5 7.2
EOD
plot $data当您运行这个代码块时,Gnuplot 会:
读取数据。
默认将文件中的第一列作为 X 轴数据,第二列作为 Y 轴数据。
生成一个由数据点构成的简单点图。
运行后,图表便会直接渲染在您的 Liii STEM 文档中,并且是可编辑的矢量图格式 。

三、选择数据列
在很多情况下,您的数据文件可能不止两列,或者您想交换 X 轴和 Y 轴的数据来源。这时就需要用到using语句。using 是 plot 命令中最常用的数据修饰符,用于指定将文件中的哪些列绘制到图表上 。
基本语法:using <X列> : <Y列>
using 1:2:这是最常见的用法,表示使用文件中的第 1 列作为 X 轴,第 2 列作为 Y 轴。这与默认行为一致。using 2:1:表示使用第 2 列作为 X 轴,第 1 列作为 Y 轴。using 1:这是一个简写,等同于 `using 0:1`,即使用数据点的行号(从0开始)作为 X 轴,第1列作为 Y 轴。
进阶用法
using 的功能远不止选择列号。您还可以使用表达式对数据进行实时处理。
表达式:
using 1:($2*100)`这表示 X 轴使用第 1 列,Y 轴使用第 2 列的值乘以 100 后的结果。括号()和$2(代表第2列的简写)是实现这个功能的关键 。字符串标签:如果数据文件的第一行是列标题(例如
Time Data),您可以直接用标题名来选择列,如using "Time":"Data"。
示例:假设我们只想绘制之前数据文件中的数值,但希望 Y 轴的单位是厘米(原数据为米),可以这样写:
$data << EOD
1 2.3
2 4.1
3 5.5
4 4.8
5 7.2
EOD
plot $data using 1:($2*100)
四、绘图风格
with 语句用于控制图表中数据的呈现风格。Gnuplot 提供了丰富的绘图风格,下面介绍四种最常用的。
线图:with lines
将数据点按顺序用直线连接起来,适合展示趋势。
plot $data using 1:2 with lines
点图:with points
只绘制数据点本身,不进行连线,适合展示数据分布。
plot $data using 1:2 with points
线点图:with linespoints
同时绘制数据点和连接线,是 lines 和 points 的组合,信息最完整。
plot $data using 1:2 with linespoints
脉冲图:with impulses
从 X 轴(或底线)到每个数据点绘制一条垂直线,形似脉冲,适合展示离散序列或频谱。
plot $data using 1:2 with impulses
小贴士:您可以在一个 `plot` 命令中同时绘制多种风格,以便对比:
plot $data using 1:2 with linespoints, \
"" using 1:2 with impulses五、实战练习:绘制实验测量数据的折线图
现在,让我们将所有知识整合起来,完成一个完整的实战练习。
任务:使用我们之前创建的 `exp_data.txt` 文件,绘制一幅带有标题、坐标轴标签的折线图,并对图表进行美化。
步骤:
在 Liii STEM 中,新建或打开一个笔记文件。
确保
exp_data.txt文件位于一个你知道的路径下(例如,与笔记文件相同的目录)。插入一个新的 Gnuplot 代码块。
在代码块中输入以下完整命令:
bash# 1. 设置图表标题和坐标轴标签 set title "实验测量数据趋势图" set xlabel "测量序号" set ylabel "数值 (m)" # 2. 执行绘图命令(使用数据文件) # 使用第1列作为X轴,第2列作为Y轴 plot "exp_data.txt" using 1:2 with linespoints ls 1 title "测量值"
- 运行该代码块。
预期结果:

代码解析:
set title、set xlabel、set ylabel:这些是 set 命令,用于设置图表的全局属性。set grid:在图表背景中添加网格线。set style line 1 ...:自定义一个编号为1的线条样式,包括颜色(lc rgb)、点类型(pt)和点大小(ps)。ls 1:在 plot 命令yarn中调用刚刚定义的线条样式1。title "测量值":设置这条线在图例中的名称。
至此,您已经完成了在 LiiiSTEM 中使用 Gnuplot 从数据到图表的全流程。您可以自由修改数据文件或绘图命令,图表会随之更新,非常适合进行探索性的数据分析。
六、命令速查表
完整版参考:Gnuplot官网
| 命令/语句 | 功能 | 示例 |
|---|---|---|
| plot "文件名" | 核心绘图命令 | plot "mydata.dat" |
| using <X>:<Y> | 选择数据列 | using 2:3(用第2、3列绘图) |
| with <风格> | 设置绘图风格 | with points (绘制散点) |
| set title "..." | 设置图表标题 | set title "实验结果" |
| set xlabel "..." | 设置X轴标签 | set xlabel "时间 (s)" |