Gnuplot是一个命令行的交互式绘图工具(command-driven interactive function plotting program)。用户通过输入命令,可以逐步设置或修改绘图环境,并以图形描述数据或函数,使我们可以借由图形做更进一步的分析。

Gnuplot是由Colin Kelly和Thomas Williams于1986年开始开发的科学绘图工具,支持二维和三维图形。它的功能是把数据资料和数学函数转换为容易观察的平面或立体的图形,它有两种工作方式,交互式方式和批处理方式,它可以让使用者很容易地读入外部的数据结果,在屏幕上显示图形,并且可以选择和修改图形的画法,明显地表现出数据的特性。

时序图的绘制—使用Gnuplot http://www.linuxidc.com/Linux/2014-08/104930.htm

Tpcc-MySQL测试并使用Gnuplot生成图表 http://www.linuxidc.com/Linux/2014-03/98566.htm

RH442攻略之Gnuplot  http://www.linuxidc.com/Linux/2014-03/98405.htm

Ubuntu下应用Gnuplot进行数据的可视化 http://www.linuxidc.com/Linux/2011-12/50358.htm

利用oprofile分析fortran并用Gnuplot画图的shell脚本 http://www.linuxidc.com/Linux/2011-04/34497.htm

一、下载gnuplot4.6.0

官网:http://www.gnuplot.info/

二、解压文件

将文件解压到/home/song/下

三、配置安装路径

cd gnuplot-4.6.0
./configure --prefix=/home/song/gnuplot

四、编译安装

make
make install

五、配置环境变量

sudo gedit /etc/profile

将如下环境变量加入:

export GNUPLOT=/home/song/gnuplot
export PATH=/home/song/gnuplot/bin:$PATH
export MANPATH=/home/song/gnuplot/share/man/man1:$MANPATH

启用环境变量:

source /etc/profile

六、运行

gnuplot

win10下gnuplot的安装和使用

gnuplot的下载

下载地址:https://sourceforge.net/projects/gnuplot/ 

安装比较简单,直接双击运行上面下载成功的.exe文件,然后选择安装语言,安装路径,附带插件等

  • 在开始菜单栏里最近添加里可以看到刚刚安装的gnuplot

  • 单击gnuplot 5.2 patchlevel 4 出现如下的命令行界面

    • 在linux命令提示符下运行gnuplot命令启动,输入quit或q或exit退出。

      1、plot命令

      gnuplot> plot sin(x) with line linetype 3 linewidth 2 或

      gnuplot> plot sin(x) w l lt 3 lw 2    %用线画,线的类型(包括颜色与虚线的类型)是3,线的宽度是2,对函数sin(x)作图

      gnuplot> plot sin(x) with point pointtype 3 pointsize 2 或

      gnuplot> plot sin(x) w p pt 3 ps 2    %用点画,点的类型(包括颜色与点的类型)是3,点的大小是2

      gnuplot> plot sin(x) title 'f(x)' w lp lt 3 lw 2 pt 3 ps 2    %同时用点和线画,这里title ‘f(x)’表示图例上标'f(x)',如果不用则用默认选项

      gnuplot> plot sin(x)    %此时所有选项均用默认值。如果缺某一项则将用默认值

      gnuplot> plot ‘a.dat’ u 2:3 w l lt 3 lw 2 %利用数据文件a.dat中的第二和第三列作图

      顺便提一下,如这里最前面的两个例子所示,在gnuplot中,如果某两个词,按字母先后顺序,前面某几个字母相同,后面的不同,那么只要写到第一个不同的字母就可以了。如with,由于没有其它以w开头的词,因此可以用 w 代替,line也可以用 l 代替。

      2、同时画多条曲线

      gnuplot> plot sin(x) title ‘sin(x)’ w l lt 1 lw 2, cos(x) title ‘cos(x)’ w l lt 2 lw 2 %两条曲线是用逗号隔开的。画多条曲线时,各曲线间均用逗号隔开就可以了。

      以上例子中是对函数作图,如果对数据文件作图,将函数名称换为数据文件名即可,但要用单引号引起来。

      3、关于图例的位置

      默认位置在右上方。

      gnuplot> set key left %放在左边,有left 和right两个选项

      gnuplot> set key bottom %放在下边,只有这一个选项;默认在上边

      gnuplot> set key outside %放在外边,但只能在右面的外边

      以上三个选项可以进行组合。如:

      gnuplot> set key left bottom %表示左下边

      还可以直接用坐标精确表示图例的位置,如

      gnuplot> set key 0.5,0.6 %将图例放在0.5,0.6的位置处

      4、关于坐标轴

      gnuplot> set xlabel ‘x’   %x轴标为‘x’

      gnuplot> set ylabel ‘y’   %y轴标为’y’

      gnuplot> set ylabel ‘DOS’ tc lt 3 %其中的tc lt 3表示’DOS’的颜色用第三种颜色。

      gnuplot> set xtics 1.0    %x轴的主刻度的宽度为1.0,同样可以为y轴定义ytics

      gnuplot> set mxtics 3    %x轴上每个主刻度中画3个分刻度,同样可以为y轴定义mytics

      gnuplot> set border 3 lt 3 lw 2 %设为第三种边界,颜色类型为3,线宽为2

      同样可以为上边的x轴(称为x2)和右边y(称为y2)轴进行设置,即x2tics,mx2tics,y2tics,my2tics。

      gnuplot> set xtics nomirror

      gnuplot> unset x2tics     %以上两条命令去掉上边x2轴的刻度

      gnuplot> set ytics nomirror

      gnuplot> unset y2tics     %以上两条命令去掉右边y轴的刻度

      5、在图中插入文字

      gnuplot> set label ‘sin(x)’ at 0.5,0.5 %在坐标(0.5,0.5)处加入字符串’sin(x)’。

      在输出为.ps或.eps文件时,如果在set term 的语句中加入了enhanced选现,则可以插入上下标、希腊字母和特殊符号。上下标的插入和latex中的方法是一样的。

      6、在图中添加直线和箭头

      gnuplot> set arrow from 0.0,0.0 to 0.6,0.8    %从(0.0,0.0)到(0.6,0.8)画一个箭头

      gnuplot> set arrow from 0.0,0.0 to 0.6,0.8 lt 3 lw 2   %这个箭头颜色类型为3,线宽类型为2

      gnuplot> set arrow from 0.0,0.0 to 0.6,0.8 nohead lt 3 lw 2 %利用nohead可以去掉箭头的头部,这就是添加直线的方法。

      注意,在gnuplot中,对于插入多个的label和arrow等等,系统会默认按先后顺序分别对各个label或arrow进行编号,从1开始。如果以后要去掉某个label或arrow,那么只要用unset命令将相应的去掉即可。如:

      gnuplot> unset arrow 2

      将去掉第二个箭头。

      7、图的大小和位置

      gnuplot>set size 0.5,0.5 %长宽均为默认宽度的一半,建议用这个取值,尤其是画成ps或eps图形的时候

      gnuplot>set origin 0.0,0.5   %设定图的最左下角的那一点在图形面板中的位置。这里图将出现在左上角。

      8、画三维图

      gnuplot>splot ‘文件名’ u 2:4:5 %以第二和第四列作为x和y坐标,第五列为z坐标。

      9.将图形输出到文件

      在gnuplot中,输出文件的格式是由terminal来控制的。默认的情况下,都是输出到屏幕,即终端模式为X11。如果想输出到文件,则必须对terminal进行设置。要了解有那些终端类型,可以输入 set terminal后回车,所有支持的终端模式(或文件格式)都列出来了。就我来说,输出文件的格式用得最多的是ps和eps文件。这在运行画图命令plot或splot前必须先运行如下两条命令:

      gnuplot>set term post eps color solid enh

      gnuplot>set output ‘a.eps’

      其中第一条命令为设置终端模式,post即为postscript模式,这是输出到ps或eps文件必须有的。后面的eps,color,solid以及enh选项均可以有或没有,根据你的需要。eps表示输出为eps文件,没有就输出为ps文件;color表示输出图形为彩色,不用就会保存为黑白的;solid表示输出图中的所有线都用实线,不用则除了第一条线为实线外,其它的均用不同的虚线;使用enh(enhanced)选项可以在图中插入上下标、希腊字母和特殊符号,不用则不能实现这些功能。后面的选项可以根据自己的需要选择一个或几个。

      第二条命令对output的设置表示要输出的文件的名字。但是请注意,运行完这条命令后,还仅仅是定义了输出文件的名字,实际上,图还没画到这个文件里去。因此运行这两条命令还只是进行了必须的设置。然后运行如下命令

      gnuplot>plot sin(x) w l

      gnuplot>replot(假如前面已经运行过plot或replot命令的话)

      这时,图形就在上面指定的文件中了。

      要输出为其它格式,同样要进行这样的设置,比如要输出为jpg格式,则在运行画图命令前先运行如下命令:

      gnuplot>set term jpeg

      gnuplot>set output ‘a.jpg’

      如果要由其它模式再返回到输出到屏幕,则运行如下命令:

      gnuplot>set term X11

      二、提高篇:

      1、如何在同一张图里同时画多个图

      gnuplot>set multiplot   %设置为多图模式

      gnuplot>set origin 0.0,0.5   %设置第一个图的原点的位置

      gnuplot>set size 0.5,0.5 %设置第一个图的大小

      gnuplot>plot “a1.dat”

      gnuplot>set origin 0.5,0.5   %设置第二个图的原点的位置

      gnuplot>set size 0.5,0.5 %设置第二个图的大小

      gnuplot>plot “a2.dat”

      gnuplot>set origin 0.0,0.0   %设置第三个图的原点的位置

      gnuplot>set size 0.5,0.5 %设置第三个图的大小

      gnuplot>plot “a3.dat”

      gnuplot>set origin 0.5,0.0   %设置第四个图的原点的位置

      gnuplot>set size 0.5,0.5 %设置第四个图的大小

      gnuplot>plot “a4.dat”

      当然,如果后一个图中的某个量的设置和前一个的相同,那么后一个中的这个量的设置可以省略。例如上面对第二、第三和第四个图的大小的设置。前一个图中对某个量的设置也会在后一个图中起作用。如果要取消在后面图中的作用,必须用如下命令,如取消label,用

      gnuplot>unset label

      2、作二维图时,如何使两边坐标轴的单位长度等长

      gnuplot> set size square    %使图形是方的
      gnuplot> set size 0.5,0.5    %使图形是你要的大小
      gnuplot> set xrange[-a:a]
      gnuplot> set yrange[-a:a]    %两坐标轴刻度范围一样
      gnuplot> plot ‘a.dat’

      3、如何在同一张图里利用左右两边的y轴分别画图

      gnuplot> set xtics nomirror   %去掉上面坐标轴x2的刻度
      gnuplot> set ytics nomirror   %去掉右边坐标轴y2的刻度
      gnuplot> set x2tics       %让上面坐标轴x2刻度自动产生
      gnuplot> set y2tics     %让右边坐标轴y2的刻度自动产生
      gnuplot> plot sin(x),cos(x) axes x1y2    %cos(x)用x1y2坐标,axes x1y2表示用x1y2坐标轴
      gnuplot> plot sin(x),cos(x) axes x2y2     %cos(x)用x2y2坐标,axes x2y2表示用x2y2坐标轴
      gnuplot> set x2range[-20:20]   %设定x2坐标的范围
      gnuplot> replot
      gnuplot> set xrange[-5:5] %设定x坐标的范围
      gnuplot> replot
      gnuplot> set xlabel 'x'
      gnuplot> set x2label 't'
      gnuplot> set ylabel 'y'
      gnuplot> set y2label 's'
      gnuplot> replot
      gnuplot> set title 'The figure'
      gnuplot> replot
      gnuplot> set x2label 't' textcolor lt 3    %textcolor lt 3或tc lt 3设置坐标轴名称的颜色

      4、如何插入希腊字母和特殊符号

      一般只能在ps和eps图中,且必须指定enhanced选项。在X11终端(即显示器)中无法显示。

      gnuplot> set terminal postscript enhanced

      然后希腊字母就可以通过{/Symbol a}输入。例如

      gnuplot> set label ‘{/Symbol a}’

      各种希腊字母与特殊符号的输入方法请见安装包中gnuplot-4.0.0/docs/psdoc目录下的ps_guide.ps文件。

      另外还可参见:
      http://t16web.lanl.gov/Kawano/gnuplot/label-e.html#4.3

      5、gnuplot中如何插入Angstrom(埃)这个符号(A上面一个小圆圈)

      脚本中在插入前先加入
      
      gnuplot>set encoding iso_8859_1
      
      这个命令,然后就可以通过“{\305}”加入了。如横坐标要标上“k(1/?)”:
      
      gnuplot>set xlabel 'k(1/{\305})
      
      
      
      如果是multiplot模式,则这个命令必须放在
      
      gnuplot>set multiplot
      
      的前面。
      
      
      
      如果后面还要插入别的转义字符,那么还要在插入字符后加入如下命令:
      
      set encoding default
      
      
      
      安装包中gnuplot-4.0.0/docs/psdoc/ps_guide.ps文件中的表中的‘E’代表那一列的所有符号都用这个方法输入。
      

      6、gnuplot画等高线图

      gnuplot>splot ‘文件名.dat’ u 1:2:3 w l   %做三维图

      gnuplot>set dgrid3d 100,100 %设置三维图表面的网格的数目

      gnuplot>replot

      gnuplot>set contour    %设置画等高线

      gnuplot>set cntrparam levels incremental -0.2,0.01,0.2   %设置等高线的疏密和范围,数据从   -0.2到0.2中间每隔0.01画一条线

      gnuplot>unset surface   去掉上面的三维图形

      最后用鼠标拽动图形,选择合理的角度即可。或者直接设置(0,0)的视角也可以:

      gnuplot>set view 0,0

      gnuplot>replot

      这里注意,画三维图的数据文件必须是分块的,也就是x每变换一个值,y在其变化范围内变化一周,这样作为一块,然后再取一个x值,y再变化一周,作为下一数据块,等等。块与块之间用一空行格开。

      7、如何画漂亮的pm3d图

      gnuplot> set pm3d                %设置pm3d模式

      gnuplot> set isosamples 50,50       %设置网格点

      gnuplot> splot x**2+y**2          %画三维图

      gnuplot> splot x**2+y**2 w pm3d   %画成pm3d模式,注意比较变化

      gnuplot> set view 0,0              %设置视角,(0,0)将投影到底面上去

      gnuplot> splot x**2+y**2 w pm3d   %重画,注意看变化

      gnuplot> unset ztics               %把z轴上的数字给去掉

      gnuplot> set isosamples 200,200     %使网格变细

      gnuplot> replot                   %重画,注意看变化,主要是过渡更光滑

交互式绘图工具gunplot的更多相关文章

  1. 基于Python实现matplotlib中动态更新图片(交互式绘图)

    最近在研究动态障碍物避障算法,在Python语言进行算法仿真时需要实时显示障碍物和运动物的当前位置和轨迹,利用Anaconda的Python打包集合,在Spyder中使用Python3.5语言和mat ...

  2. UML系列01之 UML和绘图工具Visio介绍

    概要 UML,全称是Unified Modeling Language,中文是"统一建模语言".通俗点说,UML是一种创建模型的语言.UML是在开发阶段,说明,可视化,构建和书写一 ...

  3. 用MSoffice里的绘图工具

    试过一些绘图表的工具,在xbeta推荐的替代visio一文中介绍的一些软件.之前用得最多的就是Dia,在linux下也有.现在才发现在微软的office下的绘图工具已经足够我使用了,不需要专业的图形符 ...

  4. 一起来画画!8款最佳HTML5绘图工具

    HTML5无疑是当前最受宠的一项技术,今天推荐8款HTML5绘图工具,同样惊艳你的眼球!这些绘图工具大多数是用HTML5画布(Canvas)实现的,部分辅以Javascript.对每一个web设计者来 ...

  5. Opencv实现的简易绘图工具

    第一次写博,还是个菜鸟.最近开始学习Opencv,试着写了个简易的绘图工具(目前只写了画线和橡皮擦部分,画其它图形还有待往里添加),也算是记录自己的学习之路. #include "stdaf ...

  6. HTML5 canvas 在线画笔绘图工具(一)

    HTML5 canvas 在线画笔绘图工具(一) 功能介绍 这是我用Javascript写的第一个程序,在写的过程中走了很多弯路,所以写完之后想分享出来,给与我一样的初学者做为学习的参考,同时在编写这 ...

  7. 绘图工具graphviz学习使用

    画图工具: http://www.tuicool.com/articles/r2iAfa http://www.tuicool.com/articles/RjQfey 绘图工具graphviz学习使用 ...

  8. HTML5 canvas 在线画笔绘图工具(三)

    组装画板(TDrawBuilder) 在这一小节中我们要把工具条和画板组装起来,让他们可以协同进行工作. 画板通过一个命名为TDrawBuilder来进行组装.在详细讲解TDrawBuilder对象之 ...

  9. Android 绘图工具库AChartEngine

    From: http://www.oschina.net/p/achartengine AChartEngine是为android应用而设计的绘图工具库.目前该库的最新稳定版本是0.7,支持绘制以下类 ...

随机推荐

  1. Django drf:cbv(class base view)源码分析

    cbv是基于类的视图 # 首先要在路由层配置: # 找到类绑定方法as_view # 点开dispatch的方法 # http_method_names其实就是方法的列表 整个流程: 1.写一个基于类 ...

  2. 持续集成工具FinalBuilder使用心得

    FinalBuilder 使用这款自动化创建和发布管理工具,软件开发者可以定义和维护一个可靠的以及可重复创建的程序.FinalBuilder包括集成的带有版本的控制系统,文件和目录选项,重复器,源代码 ...

  3. 用js刷剑指offer(包含min函数的栈)

    题目描述 定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1)). 牛客网链接 js代码 const stack1 = [] const stack2 = ...

  4. PHP获取文件大小的几种方法!

    一.get_header($url,true): $url = 'http://www.xxx.com/MoJing_win_x86_64_V5.125.zip'; $res = get_header ...

  5. 【万能的DFS和BFS基础框架】-多刷题才是硬道理!

  6. 【1 封新邀请】想跟谷歌、七牛、kyligence 等大佬面对面的交流吗?

    2020 年 1 月 4 日 - 5 日,"ECUG Con 2020"大会将于杭州举行.本次大会以"ECUG For Future"为主题,围绕五大技术主题, ...

  7. c语言1博客作业11

    一.本周作业头 这个作业属于那个课程 C语言程序设计II 这个作业要求在哪里 http://edu.cnblogs.com/campus/zswxy/SE2019-4/homework/10125 我 ...

  8. C# Contract诊断

    命名空间 : using System.Diagnostics.Contracts; 属性标记 : [ContractOption(category: "runtime", set ...

  9. [Google Guava] 12-数学运算

    原文链接 译文链接 译者:沈义扬 范例 1 int logFloor = LongMath.log2(n, FLOOR); 2 int mustNotOverflow = IntMath.checke ...

  10. Shiro 中的 SecurityUtils(转)

    在 Shiro 中 SecurityUtils 是一个抽象类.并且没有任何子类.在其中声明了一个静态属性,三个静态方法. 静态属性 securityManager private static Sec ...