realymylove的个人博客分享 http://blog.sciencenet.cn/u/realymylove

博文

Gnuplot 常用绘图功能简单介绍

已有 23706 次阅读 2011-9-10 14:15 |个人分类:生活、经验|系统分类:生活其它| Gnuplot, 常用功能, 科学绘图

    最近为了学习一个软件,机器总是跑在Linux下,却意外的发现了一些很好的软件,Gnuplot就是其中一个。Gnuplot是一个强大的命令式科学绘图程序。最早于1986 年由 Colin kelley 和 Thomas Williams 所开发,后来的许多参与者都在为不同的“终端”创建变种方面做出了贡献。Gnuplot可以将数学函数或数据绘制成2D或3D的图形。最为重要的是,Gnuplot 是一种免费的绘图工具,而且可以在各种操作系统中使用。这意味着,在科学绘图或者数据拟合等一般需求时,我们不必再为经济问题而使用盗版的Matlab,Gnuplot完全可以满足我们的基本需求。 
 
一、Gnuplot的下载及安装 
 
1.官方网站下载软件包,自行安装 http://www.gnuplot.info/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.osedu.net/yuanchuang-article/ns2/2011-07-30/282.html
    2.http://randle.wordpress.com/2007/06/12/gnuplot-induction/
    3.http://dsec.pku.edu.cn/dsectest/dsec_cn/gnuplot/index.html
    4.http://www.duke.edu/~hpgavin/gnuplot.html



https://blog.sciencenet.cn/blog-530833-484860.html

上一篇:Win7 和Linux 双系统的安装
下一篇:自由奔放的 Linux (1)—— Windows 与 Linux
收藏 IP: 210.72.8.*| 热度|

1 刘洋

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-4-25 07:25

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部