https://www.cnblogs.com/waterystone/p/5085801.html

一. 简介

  gnuplot是一个命令行驱动的科学绘图工具,可将数学函数或数值资料以平面图或立体图的形式画在不同种类终端机或绘图输出装置上。gnuplot既支持命令行交互模式,也支持脚本。

二. 特性

三. 安装

1. Win
准备的软件:gp466-win64.zip
绿色版,直接解压,打开bin/wgnuplot.exe即可。
输入quit或q或exit退出.

四. 基础篇

4.1 plot

plot sin(x) title ‘y=sin(x)’ with [linespoints|boxes] [linetype 5] [linewidth 2] [pointtype 5] [pointsize 2]

命令 缩写 意义
with w with子句指定样式
line l 用线画
point p 用点画
linespoints lp 用线和点画。通常在对数据绘图时非常有用,它在涉及的每个示例或数据点处标记一个点,并使用线性插值法连接连续的点
linetype lt 线的样式
linewidth lw 线的宽度
pointtype pt 点的样式
pointsize ps 点的大小

gnuplot> plot sin(x) with line linetype 3 linewidth 2 %用线画,线的类型(包括颜色与虚线的类型)是3,线的宽度是2,对函数sin(x)作图
gnuplot> plot sin(x) w l lt 3 lw 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中的第二和第三列作图,每列用空格分开

4.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 %两条曲线是用逗号隔开的。

4.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.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 %去掉上边x的刻度
gnuplot> unset x2tics     %去掉上边x的标度

gnuplot> set ytics nomirror %去掉右边y的刻度
gnuplot> unset y2tics     %去掉右边y的标度

4.5. 在图中插入文字

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

4.6 X轴时间

gnuplot> set xdata time %X轴设置为时间格式
gnuplot> set timefmt "%Y-%m-%d" %文件中时间格式
gnuplot> set format x "%m/%d" %目标时间格式
gnuplot> plot "d:/data.txt" u 1:2 w lp %画图
gnuplot> plot "d:/data.txt" u 1:2 w lp lt 2 pt 3,"d:/data.txt" u 1:3 w lp lt 2 pt 3 %多图
gnuplot> plot "d:/data.txt" u 1:2 w lp lt 1 pt 1 title "total","d:/data.txt" u 1:3 w lp lt 2 pt 2 title "p21","d:/data.txt" u 1:5 w lp lt 3 pt 3 title "p22","d:/data.txt" u 1:7 w lp lt 4 pt 4 title "p3"

4.7 在图中添加直线和箭头

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
将去掉第二个箭头。

4.8 图的大小和位置

gnuplot>set size 0.5,0.5 %长宽均为默认宽度的一半,建议用这个取值,尤其是画成ps或eps图形的时候
gnuplot>set origin 0.0,0.5 %设定图的最左下角的那一点在图形面板中的位置。这里图将出现在左上角。

4.9. 画三维图

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

4.10 将图形输出到文件

在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

五.提高篇

5.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

5.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’

5.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设置坐标轴名称的颜色

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

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

然后希腊字母就可以通过{/Symbol a}输入。例如
gnuplot> set label ‘{/Symbol a}’
<!--[if !supportLineBreakNewLine]-->
<!--[endif]-->
各种希腊字母与特殊符号的输入方法请见安装包中gnuplot-4.0.0/docs/psdoc目录下的ps_guide.ps文件。

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

5.5 画等高线图

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再变化一周,作为下一数据块,等等。块与块之间用一空行格开。

5.6 如何画漂亮的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 %重画,注意看变化,主要是过渡更光滑

5.7 利用脚本文件避免重复输入

有时候对某个数据文件做好一张图后,下次可能还要利用这个数据文件作图,但某个或某些设置要作些细微变化。这时候,可以把第一次作图时的命令全部写到一个文件里,如a.plt,下次只要将相应的设置做修改后,用下面的命令就会自动运行文件所有的命令而最后得到你要的图:
gnuplot>load ‘a.plt’
作为一个例子,假设文件名为a.plt,里面的内容为:
set pm3d
set view 0,0
unset ztics
set isosamples 200,200
splot x**2+y**2 w pm3d
set term post color
set output ‘a.ps’
replot

那么启动gnuplot后,只要运行如下命令就可以了:
gnuplot>load ‘a.plt’

gnuplot详细操作相关推荐

  1. Nginx反向绑定域名方法和详细操作应用实例:Google和Gravatar

    2019独角兽企业重金招聘Python工程师标准>>> 反向绑定域名,即将域名B绑定到域名A上,用户只要访问B就等同于进入A,内容都是由A提供,它有点像建立了一个A的镜像.什么时候要 ...

  2. centos7 查看ip_VMware安装CentOS 7操作系统详细操作教程(网络配置)

    网络配置,输入vi /etc/sysconfig/network-scripts/,按下Tab键,根据提示,输入ifcfg-eno16777736,按下Enter键,如下图所示: 图 1 网络配置-1 ...

  3. htc one m7刷Linux,HTC one m7官方刷机详细操作教程

    由于很多软件功能都需要手机进行刷机,所以入手HTC one m7新机的用户一定想着如何刷机.下面就来教你HTC one m7官方刷机的详细操作教程! 准备事项: 1.手机必须能用usb数据线电脑,因为 ...

  4. html诗词赏析网页制作步骤,制作网页详细操作步骤

    制作网页详细操作步骤 导读:目前所见即所得类型的工具越来越多,使用也越来越方便,所以制作网页已经变成了一件轻松的工作,不像以前要手工编写一行行的源代码那样.下面和小编一起去看看相关内容~ 制作网页主要 ...

  5. 从入门到入土:在kali中安装Nessus详细操作

    此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 本人博客所有文章纯属学习之用,不涉及商业利益.不合适引用,自当删除! 若 ...

  6. matlab调用库函数,Matlab调用函数的详细操作

    小编今天带来的是关于Matlab调用函数的详细操作,下面就一起来学习关于Matlab调用函数的操作步骤吧,希望能够帮助到大家. Matlab调用函数的详细操作 首先我们需要在Matlab中打开New ...

  7. macbook配置java环境变量_Mac配置JDK环境变量的详细操作

    想必不少网友还不知道Mac配置JDK环境变量的详细操作,下面小编就讲解一下Mac配置JDK环境变量的操作方法,希望对你们有所帮助哦. Mac配置JDK环境变量的详细操作 1.访问Oracle官网 ,浏 ...

  8. 记录centos 7.9 LNMP为网站申请SSL证书详细操作

    近期搭建新的网站,想着给网站开启HTTPS,便从互联网零碎的资料中整理并实际申请SSL详细操作,由于本人易健忘,在此作如下记录,同时也希望能帮助到您. 1.使用Xshell工具,登入服务器. 当然,还 ...

  9. 华为手机录制屏幕视频的详细操作

    在众多国产手机中,华为手机是排在榜首的,不管是性能还是拍照,更别说信号,是其它手机无法相比的,但是华为手机可以录制手机屏幕吗?怎么操作华为手机录制屏幕视频呢? 使用工具: 手机 操作方法: 1.总的来 ...

  10. Docker容器详细操作

    Docker操作 镜像篇 下载镜像 导入镜像文件 删除镜像文件 查看镜像 导出镜像文件 运行镜像文件 容器篇 查看容器 启动容器 进入(exec)指定容器 从容器(Container)中退出(exit ...

最新文章

  1. Android之SharedPreferences详解
  2. 《机器学习实战》K邻近算法
  3. 浅谈多进程多线程的选择(转)
  4. Js整理备忘(02)——运算符
  5. IntelliJ IDEA for Windows 默认模式下的快捷键
  6. 安全四部曲之一---***工具简单使用
  7. 基于机器视觉的散热器钎焊缺陷检测系统研发
  8. 2.6 子窗口赋值给父窗口并关闭子窗口 我的程序猿之路:第十六章
  9. error restore 01
  10. java 下载项目中的文件_java 下载web项目目录下的文件
  11. 如何编写一个抢购bot_如何编写一个SkyWalking插件
  12. Open3d之多视角点云配准
  13. 使用mysql innodb 使用5.7的json类型遇到的坑和解决办法
  14. C#文件过滤器filter
  15. 逐帧动画 and 有限状态机(fsm)
  16. echarts中国地图,设置地图外边框,内各省界线不同样式
  17. 淘宝口令生成器,批量生成
  18. IDEA统计代码量Statistic插件
  19. Jfinal极速开发微信系列教程--------------Jfinal_weixin demo的使用分析
  20. oracle %date 0 10%,oracle database 10.2.0.5.0升级到10.2.0.5.22方法(for windows)

热门文章

  1. EPA PMF正定因子分解模型程序破解
  2. keil 中 warning: #1-D: last line of file ends without a newline的解决办法
  3. Windows关机或重启显示有程序正在阻止、程序失去响应
  4. 关于链表的讨论报告-第三小组
  5. 第七章 浮动(制作京东登录页面)
  6. Unity 3D游戏十一:坦克大战
  7. 【JVM技术专题】 深入学习Parallel Scavenge回收器「 原理篇」
  8. Mocking Techniques for Go
  9. LineRenderer画虚线
  10. Cortana 设备建议