gnuplot 入门教程 4

  • Post author:
  • Post category:其他


绘图环境参数

如第二章所述,只要键入

plot sin(x), ‘1.dat’


即可得到图


1


的结果。


gnuplot


自动调整


X


轴、


Y


轴的显示范围,使图形显示在适当的位置并选择不同的颜色、图形,用以区别不同的函数或数据,也就是


gnuplot


自动调整其所需的绘图环境。若我们需要一些特别的绘图参数,如在


3D


中加入等高线、设定消去隐藏线、改变


X


轴、


Y


轴的座标点名称等,可由改变绘图环境参数而改变之。 本章说明这些绘图参数设定的方法与功能。

Axis

绘图参数在设定坐标轴方面的参数可分为变量名称、数字格式、网格、显示范围、坐标轴显示方式与显示与否等六方面的设定:

变量名称设定

一般以

x


为横轴上的变量。可用


dummy


设定为其它的名称, 所绘函数的变量名称亦随之改变。如


set dummy t


将自变量改为


t


,图


8


、图


17


、图


20


均改变自变量名称。

数字格式设定

设定数字的显示方式与格式。由

format


此项参数设定显示格式,其语法为


:


set format {<axes>} {"<format-string>"}
show format     # 显示各轴数字显示的型式

其中

axis





x





y





z





xy


或预设为


xy





format-string


为描述数字格式的字符串,可接受如


C


语言中


printf


对数字的


f





e





g


三种格式化描述,亦可加入文字


(


必须少于


100





)


。以下举一些例子:

set format xy "%.2e"
set format x  "%3.0f cm"

显示方式由

tics





xtics


等设定。

xtics

是对


X


坐标轴上的格点做设定。如起始点、结束点、间隔或在轴上特定点放特定的名称。其语法为


:

set xtics { {<start>, <incr>{, <end>}} |
      {({"<label>"} <pos> {, {"<label>"} <pos>}...)} }
set noxtics   # 不标示任何 X 轴上的标点。
show xtics    # 显示 X 轴标点的状况。

下面是三个改变格点的例子。

# 每隔 2 格一个标点
set xtics -10,2,10
plot sin(x)

# 以文字作为标点
set xtics ("low" -10, "medium" 0, "high" 10)
plot sin(x)



# 在特定位置放上标点
set xtics (-10,-9,-7,-3,0,pi/2,2*pi)
plot sin(x)


xdtics




X


座标轴上标点名称依


0





1








改为


Sun





Mon





…  Sat


等。 大于


7


的数目除以


7


取其馀数。

# 将标点名称改为 Sun, Mon, ... Sat 等
set xdtics
plot [0 : 10] sin(x)



ytics, ymtics, ydtics, ztics, zmtics, zdtics




xtics, xmtics, xdtics


相似,不同点是作用在不同的轴上。

ticslevel

是在画


3D


图形时,调整


Z


轴的相对高度。语法为


:

set ticslevel {<level>}
show tics

网格设定



XY


座标平面上依刻度画上方格子。

# 设定变数为 t
set dummy t
# 设定 X 轴 Y 轴标点的格式
set format xy "%3.2f" 
# 产生网格
set grid 
plot  sin(t)


座标显示方式

分为线性与对数两种。一般为前者,若要改为对数方式,其语法为:

set logscale <axes> <base>
set nologscale <axes>
show logscale

其中

axes





X


轴、


Y


轴、


Z


轴的任意组合。


base


预设为


10



显示范围设定

改变各轴的显示范围。

autoscale


参数设定后


gnuplot


自动调整显示范围。其余的如


rrange, trange, xrange, yrange, zrange


则是由使用者设定该轴的范围,以


xrange


为例,其语法为


:

set xrange [{<xmin> : <xmax>}]

其中参数

<xmin>





<xmax>


代表


X


轴的起点与终点, 可以是数字或数学式子。如图


7





set [0:10] sin(x)


设定


X


轴显示范围为


0





10


之间。此时可用

set xrange [0:10]
plot sin(x)

使用

autoscale


参数调整显示范围,其语法为


:

set autoscale <axes>
set noautoscal <axes>
show autoscale

其中

<axes>





gnuplot


欲调整的轴,可以是


x, y, z





xy


,预设为所有的轴。

座标轴显示与否设定

设定是否要画出座标轴,以

X


轴为例:

set xzeroaxis     # 设定显示 X 座标轴
set noxzeroaxis   # 设定不显示 X 座标轴
show xzeroaxis    # 检查 X 座标轴显示与否

Label

gnuplot

除了绘出图形外,尚可加入注解做为辅助说明。这注解包括文字与线条两方面,其提供的设定有:

功能

绘图参数名称

线条

arrow

文字注解

key, label, time, title, xlabel, ylabel, zlabel

线条

在图上画一线段可以选择有无箭头。其语法为:

set arrow {<tag>} {from <sx>,<sy>{,<sz>}} 
 {to <ex>,<ey>{,<ez>}} {{no}head}
unset arrow {<tag>}    # 删除一线条
show arrow             # 显示线条使用情况

其中参数

<tag>


是给该条线条一个整数名称,若不设定则为最小可用整数。此线条由坐标


(sx, sy, sz)





(ex, ey, ez) (





2D


中为


(sx, sy)





(ex, ey))


。参数


nohead


为画没有箭头的线段,参数


head


或没有


nohead


为画有箭头的线段。图


24


中使用没有箭头的线段作为辅助说明。以下为一些例子


:

# 画一带有箭头的线条由原点到 (1,2)。
set arrow to 1,2 
# 画一名为 3 的带箭头线条 由 (-10,4,2) 到 (-5,5,3)。
set arrow 3 from -10,4,2 to -5,5,3 
# 改变名为 3 的线条起始点至 (1,1,1)。
set arrow 3 from 1,1,1
# 删除名为 2 的线条。
unset arrow 2
# 删除所有线条。
unset arrow
# 显示线条的使用情形。
show arrow

文字注解

分为设定标题

(title)


,标示


(label)


与时间


(time)


三部份。标题设定为在图的正上方加上说明本图的文字。其语法为


:

set title {"<title-text>"} {<xoff>}{,<yoff>}
show title

设定参数

<xoff>





<yoff>


为微调标头放置的位址。


xlabel, ylabel, zlabel


的语法与


title


相同,其各自描述一坐标轴。

标示

(label)


为在图上任一位置加上文字说明,一般与线条一并使用。其语法为


:

set label {<tag>} {"<label_text>"}
{at <x>,<y>{,<z>}}{<justification>}
unset label {<tag>}       # 删除一标示
show label                # 显示标示使用情况

其中参数

<tag>








线条


” (arrow)





<tag>


意义相同,用以区别不同的


label


。参数


<justification>


是调整文字放置的位置,可以是


left





right





center


。举一些例子:

# 将 y=x 放在座标 (1,2) 之处。
set label "y=x" at 1,2
# 将 y=x^2 放在座标 (2,3,4) 之处,并命名为 3。
set label 3 "y=x^2" at 2,3,4 right
# 将名为 3 的标示居中放置。
set label 3 center
# 删除名为 2 的标示。
set nolabel 2
# 删除所有标示。
set nolabel
# 显示标示使用情形。
show label

一般绘一图形后,

gnuplot


将函数名称或图形名称置于右上角。


key


参数设定可改变名称放置位置。其语法为


:

set key
set key <x>,<y>{,<z>}
unset key
show key

其中参数

<x>, <y>, <z>


设定名称放置位置 。


unset key


为不显示名称,若使用


set key


则再度显示名称。若使用


set key 0.2, 0.5


则显示函数名称于坐标


(0.2, 0.5)


之处。

unset key
plot sin(x), cos(atan(x))


set key at 2, 0.5 plot [-pi/2:pi] cos(x), -( sin(x) > sin(x+1) ? sin(x) : sin(x+1))


时间参数设定是将图产生的时间标在图上。其语法为

set time {<xoff>}{,<yoff>}
unset time
show time

设定参数

<xoff>





<yoff>


为微调时间放置的位址,正数表示向上或向右,负数为反方向,以字的长宽作为单位。

set title "sin(x)+sin(2*x)"
set xlabel "X-axis"
set ylabel "Y-axis"
set arrow from  -2,1 to -2.5,0.4
set label "Local max" at -2,1.1
unset key
set time
plot [-5:5] sin(x)+sin(2*x)



版权声明:本文为liyuanbhu原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。