gnuplot 入门教程 2
最后更新于:2022-04-01 07:31:44
几年前写的一篇短文,今天找东西时翻出来了,感觉写的还是比较实用的。放在这里供有需要的人参考吧。
### 3D绘图
例 11:
~~~
splot [-pi:pi] [-pi:pi] sin(x)*cos(y)
~~~
产生图 2结果 --- 以纵横各 10 条线组成的网格画出 sin(x)*cos(y) 的图形。
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-01-24_56a42340d14d2.PNG)
图 3 Plotting sin(x)*cos(y)
例 12 画等高线图:
~~~
set dgrid3d 100,100 #设置三维图表面的网格的数目
set contour #设置画等高线
set cntrparam levels incremental -0.9,0.1,0.9 #设置等高线的疏密和范围,数据从 -0.2到0.2中间每隔0.01画一条线
unset surface # 去掉上面的三维图形
set view 0,0
unset key
splot [-pi:pi] [-pi:pi] sin(x)*cos(y)
~~~
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-01-24_56a42340e75c7.PNG)
例 13 画pm3d图
~~~
set pm3d
set isosamples 50,50
splot x**2+y**2
~~~
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-01-24_56a4234109aaf.PNG)
~~~
set view 0,0 #设置视角,(0,0)将投影到底面上去
unset ztics #把z轴上的数字给去掉
unset surface
splot x**2+y**2
reset
~~~
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-01-24_56a423412ac86.PNG)
### 输出文件
在启动时,您可能注意到终端类型设置为 X11。gnuplot采用标准设计,可以在多个终端设备上绘图。这包括直接打印到多种打印机中,包括 Epson、HP 和 Imagen 打印机。它甚至可以在伪设备中绘图,如 postscript 和 png。这主要涉及生成输出文件,而不是可查看文件或打印输出。这是将您的图表包含在其他报表中的一种技巧。
例 14 设置输出和终端类型
~~~
set terminal png # gnuplot recommends setting terminal before output
set output ‘output.png’ # The output filename
plot sin(x)
~~~
现在,文件 output.png 中有了您刚才绘制的图。
所有终端在能力上都不相同。其中的一些(如 LaTeX)可能不支持文本的旋转,所以如果您像我们前面那样设置 ylabel,在不同的终端中可能显示不一样。换句话说,您可以在 LaTeX 的特定终端中使用 LaTex 命令。例如,set ylabel $sin(\\\\theta)$(注意我们使用两个反斜杠产生一个 LaTex 所需的反斜杠 —— gnuplot 在将双引号中所括的字符串传送到终端驱动程序之前,先对其进行反斜杠处理)。现在,您可以使用 \\input{output.tex} 将输出文件包含在 LaTeX 文件中。要在 PostScript 终端中获得相同的结果,使用相应的 PostScript 命令:{/Symbol q}。在 enhanced PostScript 和 LaTeX 中,您可以使用表示法 x^{superscript} 和 x_{subscript} 得到上标文字。还要注意缩写的终端和输出命令:
例 15 eps 驱动程序的能力
~~~
set term post enh # enhanced PostScript, essentially PostScript with bounding boxes
set out 'gplt.eps'
set xlabel '{/Symbol q_1}
set ylabel 'sin^2({/Symbol q_1})'
plot sin(x)**2
~~~
### 其他
顺便说一下,我们提供的所有例子都可以在交互模式或批处理模式下运行。要以交互模式运行,在提示符中输入每个命令。要以批处理模式运行,将命令输入或添加到文本文件中,然后在 gnuplot提示符中使用 load 'filename' 读入文件,或者在 shell 提示符下将其作为参数提供给 gnuplot:$ gnuplot filename。使用第二种方法,gnuplot会在执行输入文件中的所有命令后退出,所以当直接绘图到文件中时,采用批处理模式执行特别有效。如果在屏幕上绘图时使用第二种方法,输出窗口一出现(当 gnuplot退出时)就会消失,所以您需要使用显式的“pause -1”命令(请参阅 help pause)来保持窗口。
在 X 环境下,gnuplot 如同其他 X client 程序一样,可接受许多参数。如
~~~
gnuplot -font 8x13bold # 设定字形为 8x13bold。
gnuplot -geometry 900x700 # 设定窗口的长为 900 pixel 宽为 700 pixel。
gnuplot -bg black # 设定背景颜色为黑色。
~~~
gnuplot 绘制数学函数或数值资料的步骤大体如:
定义常数及函数:定义常数及函数,使程式模组化及易于了解。
设定绘图环境:gnuplot 绘图之前已预先设定许多绘图参数。
绘图:在定义数学函数或设定绘图环境之后,接着就是绘出数学函数或数值资料的图形。gnuplot 提供操作方便的绘图指令——plot (2D) 或 splot (3D)。
产生输出结果:在终端上绘出结果后,可经由一些步骤而产生不同输出装置所需的输出。
依照上述过程,可快速地画出图形。剩下的步骤就是细心的调整绘图环境参数或修改函数方程式、常数等,即可得到满意的结果。