gnuplot 入门教程 4

绘图环境参数

如第二章所述,只要键入 plot sin(x), '1.dat' 即可得到图的结果。gnuplot 自动调整 轴、 轴的显示范围,使图形显示在适当的位置并选择不同的颜色、图形,用以区别不同的函数或数据,也就是 gnuplot 自动调整其所需的绘图环境。若我们需要一些特别的绘图参数,如在 3D 中加入等高线、设定消去隐藏线、改变 轴、轴的座标点名称等,可由改变绘图环境参数而改变之。 本章说明这些绘图参数设定的方法与功能。

Axis

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

 变量名称设定

一般以 为横轴上的变量。可用 dummy 设定为其它的名称, 所绘函数的变量名称亦随之改变。如 set dummy t 将自变量改为 t,图8、图17、图20 均改变自变量名称。

 数字格式设定

设定数字的显示方式与格式。由 format 此项参数设定显示格式,其语法为 :

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

其中 axis 为 xyzxy 或预设为xyformat-string 为描述数字格式的字符串,可接受如 语言中 printf 对数字的 fe三种格式化描述,亦可加入文字 (必须少于100 )。以下举一些例子: 

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

显示方式由 ticsxtics等设定。 

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

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 将 座标轴上标点名称依 01改为 SunMon…  Sat 等。 大于 的数目除以取其馀数。

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


ytics, ymtics, ydtics, ztics, zmtics, zdtics 与 xtics, xmtics, xdtics 相似,不同点是作用在不同的轴上。

ticslevel 是在画 3D 图形时,调整 轴的相对高度。语法为

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 为 轴、轴、轴的任意组合。base 预设为 10

显示范围设定

改变各轴的显示范围。autoscale 参数设定后 gnuplot 自动调整显示范围。其余的如 rrange, trange, xrange, yrange, zrange 则是由使用者设定该轴的范围,以 xrange 为例,其语法为

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

其中参数 <xmin> 与 <xmax> 代表 轴的起点与终点, 可以是数字或数学式子。如图中 set [0:10] sin(x) 设定 轴显示范围为 与 10 之间。此时可用

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

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

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

其中 <axes> 为 gnuplot 欲调整的轴,可以是 x, y, z 或 xy,预设为所有的轴。

 座标轴显示与否设定

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

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> 是调整文字放置的位置,可以是 leftright 或 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)








  • 7
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值