gnuplot


gnuplot(一):坐标取值范围及刻度 

我们从上一讲结束时的图像开始:

gnuplot> set samples 500
gnuplot> set xlabel "X"
gnuplot> set ylabel "Y"
gnuplot> set title "sin(5*x) 函数图像"
gnuplot> unset key
gnuplot> plot sin(5*x)


这里默认的 x 取值范围是从 -10 到 10。我们现在希望 x 的取值范围从 -2π 到 2π,这样函数图像可以正好包括十个周期。横坐标取值范围由 xrange 参数控制。还记得gnuplot里面所有参数都由 set 命令控制吗?取值范围由方括号内的一对数表示,两个数之间用冒号隔开:
gnuplot> set xrange [-2*pi:2*pi]
gnuplot> replot

(不要忘记,每一个和 x 坐标有关的参数,都对应有一个和 y 有关的参数,所以纵坐标的取值范围由 yrange 控制。)

现在横坐标取值范围已经符合我们的要求了,但是横轴上的刻度并不是我们想要的。我们不想要刻度出现在整数位置上,而是希望刻度为 π 的整倍数。另外,我们还希望两个主刻度之间 π/2 的位置有一个分刻度,分刻度只要有刻度就可以,没必要标出数字了。gnuplot里面,横轴主刻度和分刻度,分别用 xtics 和 mxtics 表示(m 表示 minor)。我们试试下面的命令:
gnuplot> set xtics pi
gnuplot> set mxtics 2
gnuplot> replot

这里的命令表示:横轴主刻度间隔为 π,每两个主刻度之间被分刻度分为2份。这组命令得到的图像如下:


现在刻度间隔对了,但是显示的数字并不是我们想要的。我们希望显示字符 π,而不是小数3.14159。其实,set xtics命令的形式并不是唯一的。我们试试下面的形式:
gnuplot> set xtics ("-2π" -2*pi, "" -1.5*pi 1, "-π" -pi, "" -0.5*pi 1, "0" 0, "" 0.5*pi 1, "π" pi, "" 1.5*pi 1, "2π" 2*pi)
gnuplot> replot
这里 set xtics 命令直接规定了每个刻度的位置和显示的字符。每一个刻度对应三个参数:显示字符、刻度位置、刻度等级。刻度等级为 0 时表示主刻度,等级为 1 时表示分刻度。对于主刻度(等级为 0 时),表示等级的参数也可以省略不写。各个刻度的参数之间用逗号隔开。从上面的例子我们还看出,显示字符可以为空,也就是只标刻度,不显示字符。这组命令得到的图像如下:


现在横轴坐标已经完全符合我们要求了,我们把纵轴坐标也调整一下,因为我们不需要这么细的划分纵轴刻度:
gnuplot> set ytics -1,0.5,1
gnuplot> replot
这里又用了 set ytics 命令的另一种形式(再次提醒一下,xtics 和 ytics 语法是完全一样的):后面跟了逗号隔开的三个参数。这三个参数分别表示:最小主刻度、主刻度步长、最大主刻度。图像如下:


现在我们完成了对于坐标轴的一些微调,图像看起来更顺眼了。 

本文引用地址:
http://blog.sciencenet.cn/blog-373392-497484.html


gnuplot(二)线类型以及字体的设置

NS2gnuplot绘图程序中对线型(linetype)、点型(pointtype)、线条宽度(linewidth)、点大小(pointsize)、图样(style)都有相应的设定值,具体设置如下:

(1)线型(linetype )。在此类型中主要设置线条的颜色,具体对应如下:

n

0

1

2

3

4

5

6

linetype

black

red

green

blue

pink

浅蓝

yellow


(2)点型(pointtype)。此类型用于设置点得形状,可分为14中,具体对应如下:

n

0

1

2

3

4

5

6

7

8

9

10

11

12

13

pointtype

+

×

*


3)线条宽度(linewidth)、点大小(pointsize)。两者都可以设置为整数或小数。

4)图样(style)gnuplot 描绘数据数据图形是以读入档案中的坐标值后,以图样绘上。gnuplot可提供 9种图样,分别是:

ü  lines :将相邻的点以线条连接。如 plot sin(x) with lines

ü  points : 将每一点以一符号绘上。如 plot sin(x) with points

ü  linespoints : 同时具有 lines  points 的功能。

ü  impulses : 将每一点画一垂直线至 X 轴。如 plot sin(x) with impulses

ü  dots : 将每一点绘一细点。如 plot sin(x) with dots

ü  steps : 以垂直线及水平线各一条来连接两点,形成梯形。如连接 (x1,y1)(x2,y2)两点,以(x1,y1)(x2,y1)(x2,y1)(x2,y2) 两线段连接。如 plot sin(x) with steps

ü  errorbars : 对每一点坐标值 (x,y),画一由 (x,ylow)  (x,yhigh) 的线段。并在线段两端做上 tic mark。如plot sin(x) with errorbars

ü  boxes : The boxes style draws a box centred about the given x coordinate from the yaxis to the given y coordinate.plot sin(x) with boxes

ü  boxerrorbars : 组合 errorbars  boxes 两者功能。如 plot sin(x) with boxerrorbars

(5) 图例(key

     若想改变显示的图例名称,可通过下述语句实现:

       plot 'node1' title“node_1”     #将图例显示的名称从“node1”改为“node_1”

     也可以通过下述语句直接在画线条时显示:

       plot 'node1' title“node_1”with lines

http://blog.chinaunix.net/uid-26263325-id-3233945.html


gnuplot(三):关于gnuplot的图例设置

在同一图像中包含多组数据或函数时,图例是必要的。我们这一次谈一谈图例的微调。

这次来画前 3 阶的第一类贝塞尔函数 Jn(x)。在 gnuplot 里,0 阶和 1 阶贝塞尔函数已经定义了,分别为 besj0(x)和 besj1(x),而 2 阶贝塞尔函数可以通过递推关系构造出来。下面是例子:

gnuplot> set term wxt enhanced
gnuplot> besj2(x) = besj1(x)*2/x - besj0(x)
gnuplot> set xrange [0:20]
gnuplot> set xtics 2
gnuplot> set xlabel "X"
gnuplot> set ylabel "Y"
gnuplot> set title "Bessel Functions of the First Kind"
gnuplot> set grid
gnuplot> set style line 1 lw 2 lc rgb "#F62217"
gnuplot> set style line 2 lw 2 lc rgb "#D4A017"
gnuplot> set style line 3 lw 2 lc rgb "#2B60DE"
gnuplot> plot besj0(x) ls 1 t "J_0(x)", besj1(x) ls 2 t "J_1(x)", besj2(x) ls 3 t "J_2(x)"

贝塞尔函数

之前我们讲过,plot 命令后面可以跟随一些参数(例如 linewidth, linecolor 等)来改变点线风格。在上面的例子中,我们把这些参数单独拿出来放到了 set style 命令里,定义了三个linestyle,然后在 plot 命令里再调用这些 linestyle。这样子做和我们之前的做法效果上没什么不同,唯一的区别是让 plot 命令短了一些。另外,改变风格可能容易一点。

上面是默认的图例,下面让我们进行微调。

为图例加上边框

gnuplot> set key box
gnuplot> replot

贝塞尔函数

改变图例显示位置

gnuplot> set key center at 10,0.7
gnuplot> replot

贝塞尔函数

把图例的title 和图线示例调换位置

gnuplot> set key reverse
gnuplot> replot

把图例的title 和图线示例调换位置

调整图例边框宽度 width(或高度 height)

gnuplot> set key width 1
gnuplot> replot

调整图例边框宽度

调整 title 文字对齐方式(Left 或者 Right,注意首字母大写)

gnuplot> set key Left
gnuplot> replot

调整 title 文字对齐方式

调整图例行间隔

gnuplot> set key spacing 1.2
gnuplot> replot

调整图例行间隔

调整图线示例长度

gnuplot> set key samplen 2
gnuplot> replot

调整图线示例长度

这些并不是 set key 的全部参数。在 gnuplot 里,如果想深入了解任何命令的详细用法,不要忘记使用 help 命令。

本文转自:http://blog.sciencenet.cn/blog-373392-503225.html

Gnuplot线和点的种类(Line and Point Types)


Gnuplot使用技巧:线和点的种类(Line and Point Types)

Line and Point TypesA lot of the default types that gnuplot chooses are rather nice, but many times it necessary to distinguish and use specific point types and line types. I have generated a huge gnuplot list using the gnuplot test function and then some image manipulation. I always lack this information and couldn't find any reference for this on the internet.

Gnuplot使用技巧:线和点的种类(Line and Point Types) - 喜欢吃桃子 - wangyufeng的博客
 
转自: http://www.tantal.dk
设置字体。第一项为全局默认字体,第二项为某一项的字体
set term emf font "Times New Roman,宋体,15"
set title "服务发现率" font "Times New Roman,宋体,20"


不画右侧和上侧的边框
set border 3
set  xtics nomirror
set ytics nomirror


任意放置标签的位置
set key 290,0.25



每种输出格式下,gnuplot的颜色数量不同。emf格式下,gnuplot有十五种颜色
lt 1 至 lt 15。lt 16也为红色,但线形变为虚线。
gnuplotcolor.gif

emf格式下的前30种点、线
gnuplot.gif 

http://blog.sciencenet.cn/blog-54317-458641.html  此文来自科学网王静博客,转载请注明出处。  

gnuplot绘制图像并保存

一、基础篇

在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、在图中插入文字

gnuplot> 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坐标。

9.将图形输出到文件

在gnuplot中,输出文件的格式是由terminal来控制的。默认的情况下,都是输出到屏幕,即终端模式为X11。如果想输出到文件,则必须对 terminal进行设置。要了解有那些终端类型,可以输入 set terminal后回车,所有支持的终端模式(或文件格式)都列出来了。就我来说,输出文件的格式用得最多的是ps和eps文件。这在运行画图命令 plot或splot前必须先运行如下两条命令:

gnuplot>set term post eps color solid enh
gnuplot>set output ‘a.eps’

其中第一条命令为设置终端模式,post即为postscript模式,这是输出到ps或eps文件必须有的。后面的eps,color,solid以及 enh选项均可以有或没有,根据你的需要。eps表示输出为eps文件,没有就输出为ps文件;color表示输出图形为彩色,不用就会保存为黑白 的;solid表示输出图中的所有线都用实线,不用则除了第一条线为实线外,其它的均用不同的虚线;使用enh(enhanced)选项可以在图中插入上 下标、希腊字母和特殊符号,不用则不能实现这些功能。后面的选项可以根据自己的需要选择一个或几个。

第二条命令对output的设置表示要输出的文件的名字。但是请注意,运行完这条命令后,还仅仅是定义了输出文件的名字,实际上,图还没画到这个文件里去。因此运行这两条命令还只是进行了必须的设置。然后运行如下命令
gnuplot>plot sin(x) w l

gnuplot>replot(假如前面已经运行过plot或replot命令的话)
这时,图形就在上面指定的文件中了。

要输出为其它格式,同样要进行这样的设置,比如要输出为jpg格式,则在运行画图命令前先运行如下命令:
gnuplot>set term jpeg
gnuplot>set output ‘a.jpg’

如果要由其它模式再返回到输出到屏幕,则运行如下命令:
gnuplot>set term X11

二、提高篇

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

gnuplot>set multiplot   %设置为多图模式
gnuplot>set origin 0.0,0.5   %设置第一个图的原点的位置
gnuplot>set size 0.5,0.5  %设置第一个图的大小
gnuplot>plot “a1.dat”
gnuplot>set origin 0.5,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.5,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、如何画漂亮的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                   %重画,注意看变化,主要是过渡更光滑

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

有时候对某个数据文件做好一张图后,下次可能还要利用这个数据文件作图,但某个或某些设置要作些细微变化。这时候,可以把第一次作图时的命令全部写到一个文件里,如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

9、在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

本文来自网络。



法宝:


  • 现在试着把这个窗口缩小到一 半大小,怎么样?字看不清了吧?点一下工具栏里的“Apply autoscale”按钮, 让 Gnuplot 重画窗口。

  • set autoscale

  • -help 最靠谱的




  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值