【转】gnuplot 功能

【转】gnuplot 功能
2011-02-22 00:41
转载自 baixuejiyi1111
最终编辑 yingzi566

[gnuplot]

 A.     简介
gnuplot 是一个命令导向的交谈式绘图程序(command-driven interactive function plotting program)。使用者输入的每一项命令,可以逐步设定或
修改绘图环境。它以图形表达数据或涵数,使我们可以藉由图形做更进一步的分析。


B.     如何使用gnuplot  ($为cygwin shell的提示符号)
a.       $ startxwin.bat
 b.      在新开出来的窗口输入gnuplot        $gnuplot
 c.       执行 GNUPLOT 程序时,GNUPLOT 首先检查是否设定环境参数 DISPLAY, 若有则依其设定。当其确定为 X 环境时,将输出模式设定为 X11。笔者以cbr_delay为例,先简单示范如何把图给画出来。画图的指令是plot,要画的档案cbr_delay。
gnuplot> plot “cbr_delay”
图是画出来了,但是笔者要的不是把数据用打点的方式画出来,而是要把这些点连起来。没关系,接下来,只要学着修改环境变量,就可以画出理想的图了。

 C.     修改环境变量
a.坐标轴(Axis):
绘图参数在设定坐标轴方面的参数可分为变量名称、标点、网格、显示范围、 坐标轴显示方式与显示与否等六方面的设定。不过笔者只介绍几个常用的设定,详细的设定可以参考http://phi.sinica.edu.tw/aspac/reports/94/94002/
功能
绘图参数名称
标点设定 xtics,ydtics    
网格设定  grid
坐标显示方式  logscale
显示范围设定 autoscale,xrange,yrange
坐标轴显示与否  xzeroaxis,yzeroaxis 
说明:
 1.      xtics是对 X 坐标轴上的标点做设定。如起始点、结束点、间隔或在轴上特定点放特定的名称
。其语法为:

set xtics { {, {, }} | {({""} {, {""} }...)} }
unset xtics   # 不标示任何 X 轴上的标点。
show xtics   # 显示 X 轴标点的状况。
  例:  (原本) gnuplot > plot sin(x)

在x轴上的标点设定是以5为单位。若是觉得想要把标点距离设小一点,例如设为1,可以使用
gnuplot > set xtics -10, 1, 10
gnuplot > plot sin(x)
ytics与 xtics相似,不同点是作用在y轴上。
  2.      网格设定 : 在 XY 坐标平面上依刻度画上方格子。
gnuplot> set grid
gnuplot> plot sin(x)
若是想要把网格拿掉,只要在下unset grid即可。
3.      坐标显示方式 : 分为线性与对数两种。 一般为前者,若要改为对数方式,其语法为:
set logscale
其中 axes 为 X 轴、Y 轴、Z 轴的任意组合。base 预设为 10。

 4.      显示范围设定:改变各轴的显示范围。autoscale 参数设定后 gnuplot自动调整显示范围。而xrange、yrange则是可以由使用者设定该轴的范围。以 xrange 为例,其语法为:
    set xrange [{ : }]
其中参数 与 代表 X 轴的起点与终点,可以是数字或数学式子。
例:
gnuplot> set xrange [0:10]
gnuplot> plot sin(x)

 5.      坐标轴显示与否设定 : 设定是否要画出坐标轴,以 X 轴为例:
set xzeroaxis       # 设定显示 X 坐标轴
unset xzeroaxis     # 设定不显示 X 坐标轴
show xzeroaxis     # 检查 X 坐标轴显示与否 


gnuplot> set  xzeroaxis
gnuplot> plot sin(x)
若是要把xzeroaxis拿掉,只要下unset xzeroaxis即可。

b.标示(Label):GNUPLOT 除了绘出图形外,尚可加入批注做为辅助说明。这批注包括文字与线条两方面,其提供的设定有
功能   
绘图参数名称
线条 arrow
文字批注  key,label,title,xlabel,ylabel
说明
1.      线条:在图上画一线段 可以选择有无箭头。其语法为
set arrow {} {from ,{,}}    {to ,{,}} {{no}head}
unset arrow {}      # 删除一线条
show arrow             # 显示线条使用情况
其中参数 <tag>是给该条线条一个整数名称,若不设定则为最小可用整数。此线条由坐标(sx, sy, sz)到(ex, ey, ez)(在2D中为 (sx, sy)到(ex, ey))。参数 nohead 为画没有箭头的线段,参数 head 或没有 nohead 为画有箭头的线段。

#画一带有箭头的线条由原点到 (1,2)。
gnuplot> set arrow to 1,2
#画一名为3的带箭头线条由(0.4, 0.3 ) 到 (0.2, 0.1)。
gnuplot> set arrow 3 from 0.4, 0.3 to 0.2, 0.1
 #删除名为3的线条。
gnuplot>unset arrow 3

 #删除所有线条。
 guplot> unset arrow

  2.文字批注:分为设定标头(title)和标示(label)。
标头(title):
设定为在图的正上方加上说明本图的文字。其语法为:
   set title {""} {}{,}
  show title
  其中设定参数 或 为微调标头放置的地址。 xlabel, ylabel的语法与title相同,其各自描述一坐标轴。
标示 (label):为在图上任一位置加上文字说明,一般与线条一并使用。
set label {} {""}   {at ,{,}}{}
 unset label {}          # 删除一标示
show label                # 显示标示使用情况
其中参数<tag>与"线条" (arrow) 中<tag>意义相同,用以区别不同的 label。参数 是调整文字放置的位置,可以是 left,right 或 center。

  # 将 y=x 放在坐标 (1,2) 之处。
gnuplot> set label “y=x”at 1,2
  # 将 y=x^2 放在坐标 (2,3) 之处,并命名为 3。
  gnuplot> set label 3 "y=x^2" at 2,3 right
  # 将名为 3 的标示居中放置。
  gnuplot> set label 3 center
# 删除名为3的标示。
gnuplot> unset label 3
# 删除所有标示。
gnuplot> unsel label

一般绘一图形后,gnuplot会将函数名称或图形文件名称置于右上角。 key参数设定可改变名称放置位置。其语法为:
         set key
               set key ,{,}           #其中参数 , , 设定名称放置位置。
               unset key                               #不显示名称
        show key               #再度显示名称 

[例]

gnuplot> set title “cbr_delay”
gnuplot> set xlabel “simulation time”
gnuplot> set ylabel “delay time”
gnuplot> unset key
 gnuplot> set label “constant delay= 0.038706 sec”at 0.1, 0.05
 gnuplot> set arrow from 0.5, 0.05 to 0.5, 0.04

c.图样(Style):gnuplot描绘数据资料图形是以读入档案中的坐标值后,以图样绘上。而描绘函数图形是计算若干点的函数值后,以某种图样将函数值绘上。一般是取样 100 点及采取线条作为图样。GNUPLOT 可提供 9 种图样,分别是
  1.     lines : 将相邻的点以线条连接。如
plot sin(x) with lines
 2.      points : 将每一点以一符号绘上。如
plot sin(x) with points
3.      linespoints : 同时具有 lines 及 points 的功能。如
plot sin(x) with linespoints

 4.      impulses: 将每一点画一垂直线至 X 轴。如
plot sin(x) with impulses
 5.      dots: 将每一点绘一细点。如 plot sin(x) with dots。
 6.      steps : 以垂直线及水平线各一条来连接两点,形成梯形。如连接 (x1,y1),(x2,y2)两点,以(x1,y1)到(x2,y1)和(x2,y1)到(x2,y2) 两线段连接。如 plot sin(x) with steps。
7.     errorbars : 对每一点坐标值 (x,y),画一由 (x,ylow) 至 (x,yhigh) 的线段。并在线段两端做上 tic mark。如
plot sin(x) with errorbars
 8.      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
 9.      boxerrorbars : 组合 errorbars 与 boxes 两者功能。如
plot sin(x) with boxerrorbars

[例] 把cbr_delay中的数据用lines和points连起来。
         gnuplot> plot “cbr_delay” with linespoints

 

linetype 1: 红色 2:绿色 3:蓝色 4:粉红 5:淡蓝 6:棕色 7:米蓝   8:橙色  (都是实线)
pointtype  :1:横线一点 2:横线一叉,3 :横线星子号 4:横线一方块(空心) 5:横线一方块(实心) 6:横线一圆圈(空心) 7:横线一圆圈(实心)8:横线一三角(空心头向上) 9:横线一三角(实心头向上) 10: 横线一三角 (空心头向下) 11: 横线一三角(实心头向下) 12:横线一菱形(空心) 12:横线一菱形(实心)


d.输出(Output):GNUPLOT 的输出参数设定有
terminal, output。不过在这里笔者只介绍如何把画出来的图存成

Gif格式。
#把输出设成存成gif格式,内定为X11 terminal
gnuplot> set terminal gif
#把输出的档名设为 cbr_delay.gif
gnuplot> set output “cbr_delay.gif”
#把资料重新绘一次
gnuplot> replot
然后就会产生一个 cbr_delay.gif 的图档了

 

例子

多张图片画在一张图片上:
>plot "p1" with lines, "p2" with lines
用不同的方式显示图片:
>plot "p1" with linespoints pointtype 4, "p2" with linespoints pointtype 3 (线的不同方式)
>plot "p1" with boxes lt 4(画柱状图)
也可以输出ps图片文件:
>set terminal postscript
>set output "throughput.ps"
>plot "p" with lines

输出eps图片设置:
>set term post enh
>set out "pic.eps"

输出png图片设置:
>set terminal png
>set output "pic.png"

设置网格:
>set grid


[参考文件]
[awk]
   1.      http://phi.sinica.edu.tw/aspac/reports/94/94011/
[xgraph]
 1.      http://www.atl.external.lmco.com/proj/csim/xgraph/xgraph.html
[gnuplot]
 1.      http://phi.sinica.edu.tw/aspac/reports/94/94002/
 2.      http://sys3.physics.iisc.ernet.in/images/gnuplot.html


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值