最近为了学习一个软件,机器总是跑在Linux下,却意外的发现了一些很好的软件,Gnuplot就是其中一个。Gnuplot是一个强大的命令式科学绘
图程序。最早于1986 年由 Colin kelley 和 Thomas Williams
所开发,后来的许多参与者都在为不同的“终端”创建变种方面做出了贡献。Gnuplot可以将数学函数或数据绘制成2D或3D的图形。最为重要的
是,Gnuplot
是一种免费的绘图工具,而且可以在各种操作系统中使用。这意味着,在科学绘图或者数据拟合等一般需求时,我们不必再为经济问题而使用盗版的
Matlab,Gnuplot完全可以满足我们的基本需求。 一、Gnuplot的下载及安装 1.官方网站下载软件包,自行安装 http://www./index.html。 Gnuplot的官方网站虽做得比较简单,但其提供了各种操作系统下的软件版本,而且官方网站还提供了各种教程、使用经验、论坛等内容的链接,在下载软件 的同时我们还可以得到许多使用的帮助,所以推荐大家到官方网站上下载Gnuplot,顺便浏览下官方网站的各个板块。 2.Fedora 下在线安装 #yum install gnuplot 或者使用Fedora 的软件安装与卸载工具搜索Gnuplot ,下载、安装Gnuplot。 3.Ubuntu 下在线安装 #apt-get install gnuplot 或者使用Ubuntu 的软件中心搜索Gnuplot ,下载、安装Gnuplot。 4.Windows 下安装时只需从官方网站上下载win32的zip压缩包,将其解压缩,释放到本地硬盘的某个目录里即可。 二、Gnuplot 的运行 1.Linux 下只需打开终端,输入gnuplot 即可,此时终端中会显示程序的版本等一些信息,并进入Gnuplot的命令模式。 2.Windows 下要找到解压目录的下bin这个目录,在bin目录下有一个名为wgnuplot.exe的文件,双击该文件,就会出现GUI界面的gnuplot。 三、Gnuplot 使用的简单介绍 1.绘制简单的函数 Gnuplot的基本运算符有:+ - * / 等,x**4表示x4。 >plot sin(2*x) 即可绘制出简单的正弦函数曲线,程序自动设定坐标范围。你也可以自己设定坐标范围: >set xrange [-pi:pi] 当然,我们可以在绘图的时候直接设定坐标的范围: >plot [-pi:pi] sin(x) 你也可以绘制简单的三位函数图。比如绘制z(x,y)=x2+y : >splot x**2+y 如需设定坐标范围,则输入: >splot [-10:10] [-20:20] x**2+y 设置坐标轴为对数坐标: >set logscale x 2.命名图像与坐标轴 >set title "示例" >set xlabel "x 轴" >set ylable "y 轴" 以上几条命令将图像的标题命名为“示例”,x轴命名为“x 轴”,y轴命名为“y 轴”。 3.改变坐标轴的标识,显示网格 >clear >plot [-pi:pi] sin(x) >set xtics ("-180" -pi,"-90" -pi/2,"0" 0,"90" pi/2,"180" pi) >set grid 以上几条命令首先将图形窗口清空,然后绘制sin(x)函数,改变坐标轴的标识,只显示五个角度值,最后显示网格。 4.设置图例的位置 >plot sin(x) title "sine" with linepoints pointtype 5 >plot sox(x) t "cosine" w boxes lt 4 >set key left >set key bottom >set key outside 上面的第一条语句绘制一幅正弦曲线,图例的名称为“sine”,线型为linepionts(点画线),点的类型为pionttype(点),图形的颜色 为5(红色);第二条语句使用了简写的方法。Gnuplot默认将图例放在右上角的边框内,后面的几条命令,将其位置进行变动。 关于线型、点类型、颜色、线宽等的具体设置请参考Gnuplot的使用指南。 5.在同一幅图中的同一区域绘制多条曲线 >plot sin(x) title "sin(x)" w l lt 1,cos(x) title "cos(x)" w l lt 2 上面的命令将在同一图中的同一坐标系中绘制sin(x)(线型为直线,颜色为红色)和cos(x)(线型为直线,颜色为绿色)。 6.在同一幅图中的不同区域绘制多幅图 *设定坐标范围 >set xrange [-pi:pi] *将屏幕或图像文件的边框比例设为1 >set size 1,1 >set origin 0,0 *程序进入多图绘制模式 >set multiplot *设置第一幅图占整幅图的1/4,并设置其原点为整幅图的0,0.5处,绘制sin(x)函数 >set size 0.5,0.5 >set origin 0,0.5 >plot sin(x) 设置第二幅图战整幅图1/4,并设置其原点为整幅图的原点,绘制1/sin(x)函数 >set size 0.5,0.5 >set origin 0,0 >plot 1/sin(x) *设置第一幅图占整幅图的1/4,并设置其原点为整幅图的0.5,0.5处,绘制cos(x)函数 >set size 0.5,0.5 >set origin 0.5,0.5 >plot cos(x) *设置第一幅图占整幅图的1/4,并设置其原点为整幅图的0.5,0处,绘制1/cos(x)函数 >set size 0.5,0.5 >set origin 0.5,0 >plot 1/cos(x) *还原为单幅图绘制模式 >unset multiplot *还原所有的设置 >reset 7.绘制数据图 Gnuplot绘制数据图与Matlab有很大不同,它不许要用户定义变量,把数据挨个输入,而是以读取数据文件的形式,将数据绘制成图。具体步骤如下: (1)在当前文件夹建立一个文本文档,命名为example(可以为任意后缀名,如txt、inp等),将数据粘贴进去。注意x轴,y轴,或z轴的数据分别写为一列,每一列之间以空格或逗号隔开(我喜欢用Tab)。 1 5 10 10 2 10 20 30 3 15 30 50 4 20 40 70 5 25 50 90 *以第一列为x轴,第二列为y轴,绘制二维数据图 >plot "example.inp" using 1:2 *以第一列为x轴,第二列为y轴,第三列为z轴,绘制三维数据图 >splot "example.inp" using 1:2:3 *以第一列为x轴,第二列、第三列、第四列的平均值为y轴,最小值为第二列,最大值为第四列(using修饰符中指定为x:y:ylow:yhigh),with函数yerrorbars) plot "example" 1:($2+$3+$4)/3:2:4 title "example" with yerrorbars 8.数据拟合 Gnuplot也提供了数据强大的拟合功能,这里以简单的一次函数和二次函数为例说明。 *以一次函数来拟合第一列和第二列数据,得到拟合参数a,b,及误差 >fit a*x+b "example" via a,b *以a,b,为参数绘制直线,同时将example中的数据点画出 >plot 5*x-2.20316e-13,"example" *以二次函数来拟合 >fit a*x**2+b*x+c "example' via a,b,c >plot 1.65386e-13*x**2+5*x+1.30488e-12,"example" 9.输出图像文件 Gnuplot支持输出为常见的图片或文档文件类型,包括pdf、jpeg、png、gif等等,具体可以通过>set terminal来查询。 >set term jpeg >set output "example.jpg" >replot 此时便在当前文件夹产生一个名为“example.jpg”的图片。 本文给出了几个最常使用的几个绘图功能,也几乎是我知道的全部,对于像我一样的初学者入门应该有所帮助。 参考来源: 1.http://www./yuanchuang-article/ns2/2011-07-30/282.html 2.http://randle./2007/06/12/gnuplot-induction/ 3.http://dsec.pku.edu.cn/dsectest/dsec_cn/gnuplot/index.html 4.http://www./~hpgavin/gnuplot.html |
|
来自: Secelia > 《about research》