GNUPLOT 描绘数学函数或数值资料图形,所以 GNUPLOT 除接受绘图、定义常数函数 等命令外,尚要能读入数值资料。数值资料通常由程式产生,如表 4。 GNUPLOT 须用指令 plot 或 splot 由档案内读入数值资料。在输出方面 GNUPLOT 除在终端机上显示绘图结果外,尚可输出至许多种输出装置上。在此介绍 GNUPLOT 读入、写出方面的指令。
在 GNUPLOT 中输入命令的方式有两种:
load "work.gnu" 命令。此时,GNUPLOT 执行档案
work.gnu 中的命令。
% gnuplot work.gnuGNUPLOT 执行 work.gnu 档案内的命令。
GNUPLOT 不论绘数学函数或数值资料皆使用 plot(splot) 指令,此指令在第 5 章 有详细的介绍。在此介绍 GNUPLOT 读入的数值资料格式及 "load" 与 "reread" --- 可读入含有 GNUPLOT 命令的档案。
GNUPLOT 使用 plot(2D) 或 splot(3D) 指令读入数值资料档及绘出图形,
详细的描述见 5.3 节。数值资料的格式为每行一组资料,
若该行开头为 # 表示该行为注解;若开头为空白,则忽略这些空白。
一组资料中的数字以空格或 tab 分开,数字以整数、浮点数字或科学记号来表示。
下表即是数值资料档 "data.gnuplot" 的范例。
# data.gnuplot 0 2 3 1 1 4 2 3 3 10 8 4 4 8 12 1 10 2 3 2An example of datafile.(III)
plot "data.gnuplot" # 画出 2D 的图形 plot "data.gnuplot" using 1:3:4 with errorbars # 画出 2D errorbar 图形
load "<input-file>" # 使用 "(双引号) 或 '(单引号) 皆可
例子如下:
load "work.gnu" # 读入 work.gnu 档案中的指令。
work.gnu 档案内容为
damp(t) = exp(-s*wn*t)/sqrt(1.0-s*s)
per(t) = sin(wn*sqrt(1.0-s**2)*t - atan(-sqrt(1.0-s**2)/s))
c(t) = 1-damp(t)*per(t)
wn = 1.0
set xrange [0:13]
set samples 50
set dummy t
plot s=.1,c(t),s=.3,c(t),s=.5,c(t),s=.7,c(t)
replot s=.9,c(t),s=1.0,c(t),s=1.5,c(t),s=2.0,c(t)
在 GNUPLOT 中执行 load "work.gnu" 之后,绘出图15 的结果。
使用 load 指令执行 gnuplot 指令可不用每次皆逐一设定绘图环境与函数常数设定等,
亦可将此次结果储存起来留待下次使用。
图 15: Demonstration of read commands from file
通常 GNUPLOT 完成一件绘图工作的过程中,须设定许多绘图环境。
若紧接著画另一张图时,往往需调整许多绘图环境参数。此时可读一 GNUPLOT
原始设定的档案,使 GNUPLOT 的设定恢复成起始状态,就可不必逐一调整绘图环境。
例如将 GNUPLOT 的起始状态存于 environment.gnu