Gnuplot 科学绘图软件脚本使用教程介绍

来源:互联网 发布:labview多线程编程 编辑:程序博客网 时间:2024/06/08 06:13

Gnuplot是一款免费的科学绘图软件,最常用于科学论文写作中的图形绘制,相对于Matlab、sigmaplot等绘图软件来说,gnuplot是免费的,并且更加小巧(安装包只有10几兆)。同word自带的绘图、Excel的图表相比较,gnuplot画出来的图更加漂亮、更加专业,并且 gnuplot 可以从文件中读取命令,以批处理模式生成图表。这就使得你可以将gnuplot的绘图命令以脚本的形式保存下来,当下次碰到要绘制类似的图形时,只要将数据文件名替换下,再运行一遍脚本就好了。

gnuplot的功能很强大,功能也很多,要把所有的功能都学会将耗费很多时间,也是不必要的。一般来说gnuplot只是用来绘制论文中的图形,因此,只要掌握其中的一部分功能就够了。论文中的图形种类一般可以分成三种:单图,子图和柱状图。这就意味着论文图形的绘制大部分是重复劳动,唯一的不同在于数据。因此,为了提高效率,我们可以充分利用gnuplot提供的脚本功能来绘制图形,即绘制相同类型的图时,只要将脚本中的数据文件地址替换掉就行了。这篇文章提供了gnuplot的三个脚本分别用来绘制单图,子图和柱状图。利用这三个脚本基本上就能满足论文的需要。

这里只列出了绘制单图的脚本和介绍,三种类型图的脚本和详细介绍可以在我的个人网站看到

http://www.qiezigan.com:8000/plot-study-part-two.html


单图是指实验结果只用一副图来表示,这是论文中最常用的一种图。gnuplot单图的脚本如下:


set term post color solid enh eps#set term epslatex standaloneset out 'tmp.eps'   #设置输出文件名set size 0.6,0.6  #设置大小比例set grid    #设置网格set key top left    #以下三句是设置说明图示方框set key width 1set key box#set xtics 0,1,11#set format x "2^{%.f}"set yrange [0:300]    #设置y轴范围#set xrange [5:85]set xlabel 'Number of Cluster'   #设置x轴标题set ylabel 'Execution Time (s)'  #设置y轴标题#set title "Matrix Density (%)"  #设置整个图的标题plot 'energy\cross8.txt' using 1:2 with lp pt 2 lw 1 title 'Random',\ 'energy\cross8.txt' using 1:3 with lp pt 8 lw 1 lt 1 title 'Build-time',\ 'energy\cross8.txt' using 1:4 with lp pt 3 lw 1 lt 1 title 'Runtime',\ 'energy\cross8.txt' using 1:5 with lp pt 4 lw 1 lt 1 title 'Build \& Run'

脚本的后面有对应的解释,下面只介绍几个比较重要的语句

set term post color solid enh eps
上面是脚本的第一行,它主要是设置输出的环境,由于计算机方面的论文大部分都是用latex写的,latex接受eps格式的图片。因此,将输出的环境设置为term post eps,color enh 是增强色彩的意思,即彩色图形。solid是图形中的线条都是实线,如果不用solid的话,有可能会出现虚线。


6-8行是设置图示的说明方框(某条线代表某个数据),top left 是将图示放在左上角,key width 后面的数字是方框大小,可以根据需要调整,正数是增大,负数是缩小。key box 是显示方框。

9-10行脚本里注释掉了,它的功能是,第9行是手动设置X轴的范围, 格式是:x y z,x z是范围,y是间隔。第十行是设置X轴上的显示格式,第十行的设置是按照指数来设置,即2^x

16-19行是根据数据文件绘制图形,’ ‘中的字符串是数据文件的地址,可以是相对地址也可以是绝对地址。要使用那些数据利用using x:y语句,x是X轴的编号,y是每一个编号对应的数据。脚本中泉涌1说明数据文件中第1列都是编号。with后面接的是线的格式,lp(linepoint)是点线,pt(pointtype)后面的数字是点的类型,lw(linewidth)后面跟的数字是线宽,title ”后面接线的标题。关于gnuplot中点线的类型编号,可以在命令行输入gnuplot启动gnuplot,然后输入test得到。其结果如图


当绘制多条线语句太长时,可以用\分隔成几行表示。这个脚本中的数据文件格式如下,数据之间用空格分开:


#       random               built-time          runtimeonly              runtime
10     2.456                  1.44                       2.264                           1.264
20      4.84                   2.896                    4.04                             2.304
30      7.168                4.208                     5.888                         3.552
.
.
.
100    23.864              14                          17.192                         12.032


这个脚本绘制出的图形如下:


以上是单个子图的脚本和介绍,多个子图以及柱状图可以参看如下网址有详细的介绍

http://www.qiezigan.com:8000/plot-study-part-two.html

原创粉丝点击