视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
Gnuplot 用法
2025-10-03 14:32:30 责编:小OO
文档
一,基础篇:

在linux命令提示符下运行gnuplot命令启动,输入quit或q或exit退出。

1.plot命令

gnuplot> plot sin(x) with line linetype 3 linewidth 2 或

gnuplot> plot sin(x) w l lt 3 lw 2 %用线画,线的类型(包括颜色与虚线的类型)是3,线的宽度是2,对函数sin(x)作图

gnuplot> plot sin(x) with point pointtype 3 pointsize 2 或

gnuplot> plot sin(x) w p pt 3 ps 2 %用点画,点的类型(包括颜色与点的类型)是3,点的大小是2

gnuplot> plot sin(x) title 'f(x)' w lp lt 3 lw 2 pt 3 ps 2 %同时用点和线画,这里title ‘f(x)’表示图例上标'f(x)',如果不用则用默认选项

gnuplot> plot sin(x) %此时所有选项均用默认值。如果缺某一项则将用默认值

gnuplot> plot ‘a.dat’ u 2:3 w l lt 3 lw 2 %利用数据文件a.dat中的第二和第三列作图

顺便提一下,如这里最前面的两个例子所示,在gnuplot中,如果某两个词,按字母先后顺序,前面某几个字母相同,后面的不同,那么只要写到第一个不同的字母就可以了。如with,由于没有其它以w开头的词,因此可以用 w 代替,line也可以用l 代替。

2、同时画多条曲线

gnuplot> plot sin(x) title ‘sin(x)’ w l lt 1 lw 2, cos(x) title ‘cos(x)’ w l lt 2 lw 2 %两条曲线是用逗号隔开的。画多条曲线时,各曲线间均用逗号隔开就可以了。

以上例子中是对函数作图,如果对数据文件作图,将函数名称换为数据文件名即可,但要用单引号引起来。

3、关于图例的位置

默认位置在右上方。

gnuplot> set key left %放在左边,有left 和right两个选项

gnuplot> set key bottom %放在下边,只有这一个选项;默认在上边

gnuplot> set key outside %放在外边,但只能在右面的外边,以上三个选项可以进行组合。如:

gnuplot> set key left bottom %表示左下边,还可以直接用坐标精确表示图例的位置,如

gnuplot> set key 0.5,0.6 %将图例放在0.5,0.6的位置处

4、关于坐标轴

gnuplot> set xlabel ‘x’ %x轴标为‘x’

gnuplot> set ylabel ‘y’ %y轴标为’y’

gnuplot> set ylabel ‘DOS’ tc lt 3 %其中的tc lt 3表示’DOS’的颜色用第三种颜色。

gnuplot> set xtics 1.0 %x轴的主刻度的宽度为1.0,同样可以为y轴定义ytics

gnuplot> set mxtics 3 %x轴上每个主刻度中画3个分刻度,同样可以为y轴定义mytics

gnuplot> set border 3 lt 3 lw 2 %设为第三种边界,颜色类型为3,线宽为2

同样可以为上边的x轴(称为x2)和右边y(称为y2)轴进行设置,即x2tics,mx2tics,y2tics,my2tics。

gnuplot> set xtics nomirror

gnuplot> unset x2tics %以上两条命令去掉上边x2轴的刻度

gnuplot> set ytics nomirror

gnuplot> unset y2tics %以上两条命令去掉右边y轴的刻度

5、在图中插入文字

uplot> set label ‘sin(x)’ at 0.5,0.5 %在坐标(0.5,0.5)处加入字符串’sin(x)’。

在输出为.ps或.eps文件时,如果在set term 的语句中加入了enhanced选现,则可以插入上下标、希腊字母和特殊符号。上下标的插入和latex中的方法是一样的。

6、在图中添加直线和箭头

gnuplot> set arrow from 0.0,0.0 to 0.6,0.8 %从(0.0,0.0)到(0.6,0.8)画一个箭头

gnuplot> set arrow from 0.0,0.0 to 0.6,0.8 lt 3 lw 2 %这个箭头颜色类型为3,线宽类型为2

gnuplot> set arrow from 0.0,0.0 to 0.6,0.8 nohead lt 3 lw 2 %利用nohead可以去掉箭头的头部,这就是添加直线的方法。

注意,在gnuplot中,对于插入多个的label和arrow等等,系统会默认按先后顺序分别对各个label或arrow进行编号,从1开始。如果以后要去掉某个label或arrow,那么只要用unset命令将相应的去掉即可。如:

gnuplot> unset arrow 2,将去掉第二个箭头。

7、图的大小和位置

gnuplot>set size 0.5,0.5 %长宽均为默认宽度的一半,建议用这个取值,尤其是画成ps或eps图形的时候

gnuplot>set origin 0.0,0.5 %设定图的最左下角的那一点在图形面板中的位置。这里图将出现在左上角。

8、画三维图

gnuplot>splot ‘文件名’ u 2:4:5 %以第二和第四列作为x和y坐标,第五列为z坐标。

二、提高篇:

1、如何在同一张图里同时画多个图

gnuplot>set multiplot %设置为多图模式

gnuplot>set origin 0.0,0.0 %设置第一个图的原点的位置

gnuplot>set size 0.5,0.5 %设置第一个图的大小

gnuplot>plot “a1.dat”

gnuplot>set origin 0.0,0.5 %设置第二个图的原点的位置

gnuplot>set size 0.5,0.5 %设置第二个图的大小

gnuplot>plot “a2.dat”

gnuplot>set origin 0.0,0.0 %设置第三个图的原点的位置

gnuplot>set size 0.5,0.5 %设置第三个图的大小

gnuplot>plot “a3.dat”

gnuplot>set origin 0.0,0.0 %设置第四个图的原点的位置

gnuplot>set size 0.5,0.5 %设置第四个图的大小

gnuplot>plot “a4.dat”

当然,如果后一个图中的某个量的设置和前一个的相同,那么后一个中的这个量的设置可以省略。例如上面对第二、第三和第四个图的大小的设置。前一个图中对某个量的设置也会在后一个图中起作用。如果要取消在后面图中的作用,必须用如下命令,如取消label,用

gnuplot>unset label

2、作二维图时,如何使两边坐标轴的单位长度等长

gnuplot> set size square %使图形是方的

gnuplot> set size 0.5,0.5 %使图形是你要的大小

gnuplot> set xrange[-a:a]

gnuplot> set yrange[-a:a] %两坐标轴刻度范围一样

gnuplot> plot ‘a.dat’

3、如何在同一张图里利用左右两边的y轴分别画图

gnuplot> set xtics nomirror %去掉上面坐标轴x2的刻度

gnuplot> set ytics nomirror %去掉右边坐标轴y2的刻度

gnuplot> set x2tics %让上面坐标轴x2刻度自动产生

gnuplot> set y2tics %让右边坐标轴y2的刻度自动产生

gnuplot> plot sin(x),cos(x) axes x1y2 %cos(x)用x1y2坐标,axes x1y2表示用x1y2坐标轴

gnuplot> plot sin(x),cos(x) axes x2y2 %cos(x)用x2y2坐标,axes x2y2表示用x2y2坐标轴

gnuplot> set x2range[-20:20] %设定x2坐标的范围

gnuplot> replot

gnuplot> set xrange[-5:5] %设定x坐标的范围

gnuplot> replot

gnuplot> set xlabel 'x'

gnuplot> set x2label 't'

gnuplot> set ylabel 'y'

gnuplot> set y2label 's'

gnuplot> replot

gnuplot> set title 'The figure'

gnuplot> replot

gnuplot> set x2label 't' textcolor lt 3 %textcolor lt 3或tc lt 3设置坐标轴名称的颜色

4、如何插入希腊字母和特殊符号

一般只能在ps和eps图中,且必须指定enhanced选项。在X11终端(即显示器)中无法显示。

gnuplot> set terminal postscript enhanced

后希腊字母就可以通过{/Symbol a}输入。例如

gnuplot> set label ‘{/Symbol a}’

各种希腊字母与特殊符号的输入方法请见安装包中gnuplot-4.0.0/docs/psdoc目录下的ps_guide.ps文件。

另外还可参见:

http://t16web.lanl.gov/Kawano/gnuplot/label-e.html#4.3

5、gnuplot中如何插入Angstrom(埃)这个符号(A上面一个小圆圈)

脚本中在插入前先加入gnuplot>set encoding iso_8859_1这个命令,然后就可以通过“{\\305}”加入了。如横坐标要标上“k(1/?)”:

gnuplot>set xlabel 'k(1/{\\305})

如果是multiplot模式,则这个命令必须放在gnuplot>set multiplot的前面。

如果后面还要插入别的转义字符,那么还要在插入字符后加入如下命令:

set encoding default

安装包中gnuplot-4.0.0/docs/psdoc/ps_guide.ps文件中的表中的‘E’代表那一列的所有符号都用这个方法输入。

6、gnuplot画等高线图

gnuplot>splot ‘文件名.dat’ u 1:2:3 w l %做三维图

gnuplot>set dgrid3d 100,100 %设置三维图表面的网格的数目

gnuplot>replot

gnuplot>set contour %设置画等高线

gnuplot>set cntrparam levels incremental -0.2,0.01,0.2 %设置等高线的疏密和范围,数据从 -0.2到0.2中间每隔0.01画一条线

gnuplot>unset surface 去掉上面的三维图形,最后用鼠标拽动图形,选择合理的角度即可。或者直接设置(0,0)的视角也可以:

gnuplot>set view 0,0

gnuplot>replot

这里注意,画三维图的数据文件必须是分块的,也就是x每变换一个值,y在其变化范围内变化一周,这样作为一块,然后再取一个x值,y再变化一周,作为下一数据块,等等。块与块之间用一空行格开。

7、输出为ps或eps图时,以下几个选项值得特别注意

gnuplot>set term postscript eps enh solid color

其中eps选项表示输出为eps格式,去掉则表示用默认的ps格式;enh选项表示图中可以插入上下标、希腊字母及其它特殊符号,如果去掉则不能插入;solid选项表示图中所有的曲线都用实线,去掉则将用不同的虚线;color选项表示在图中全部曲线用彩色,去掉则将用黑白。

8、如何画漂亮的pm3d图

gnuplot> set pm3d %设置pm3d模式

gnuplot> set isosamples 50,50 %设置网格点

gnuplot> splot x**2+y**2 %画三维图

gnuplot> splot x**2+y**2 w pm3d %画成pm3d模式,注意比较变化

gnuplot> set view 0,0 %设置视角,(0,0)将投影到底面上去

gnuplot> splot x**2+y**2 w pm3d %重画,注意看变化

gnuplot> unset ztics %把z轴上的数字给去掉

gnuplot> set isosamples 200,200 %使网格变细

gnuplot> replot %重画,注意看变化,主要是过渡更光滑

9、利用脚本文件避免重复输入

有时候对某个数据文件做好一张图后,下次可能还要利用这个数据文件作图,但某个或某些设置要作些细微变化。这时候,可以把第一次作图时的命令全部写到一个文件里,如a.plt,下次只要将相应的设置做修改后,用下面的命令就会自动运行文件所有的命令而最后得到你要的图: gnuplot>load ‘a.plt’

作为一个例子,假设文件名为a.plt,里面的内容为:

set pm3d

set view 0,0

unset ztics

set isosamples 200,200

splot x**2+y**2 w pm3d

set term post color

set output ‘a.ps’

replot

那么启动gnuplot后,只要运行如下命令就可以了:

gnuplot>load ‘a.plt’

如果我们要得到的仅仅是.ps或.eps图,那也可以在linux命令提示符下直接运行如下命令:

[zxh@theory zxh]$gnuplot a.plt

10、在gnuplot模式下运行linux命令

在gnuplot提示符下也可以运行linux命令,但必须在相应的命令前面加上 ! 号。例如,假设很多参量都已经设置好了,但需要对某个数据文件a.dat进行修改后再画图,则可以用如下方式

gnuplot>!vi a.dat

通过这种方式,所有的linux命令都可以在gnuplot环境里运行。

另外,也可以在gnuplot的提示符后输入shell,暂时性退出gnuplot,进入linux环境,做完要做的事情后,运行exit命令,又回到gnuplot环境下。

gnuplot>shell

[zxh@theory zxh]$vi a.f

[zxh@theory zxh]$f77 a.f

[zxh@theory zxh]$a.out (假设生成a.dat数据文件)

[zxh@theory zxh]$exit

gnuplot>plot ‘a.dat’ w l下载本文

显示全文
专题