漂亮的图片在一篇报告中是必不可少的。这里推荐一款绘图软件Gnuplot。 Gnuplot是一种免费分发的绘图工具,可以移植到各种主流平台,无论是在Linux还是在Windows都易于安装使用。最新的版本可以到http://www.gnuplot.info/上下载。本文中的例子在Win7系统上gnuplot5.0.5测试可用。这不是细致全能的教程,但是说明了关键位置的处理办法,可以很好地避免学习和使用过程中多走弯路。

1、开始吧

gnuplot是基于命令行的交互式绘图软件。打开一个终端,输入gnuplot,随着程序启动,会出现下面的信息,(如果是在Windows电脑上,双击gnuplot.exe后会自动打开该命令行窗口):

这里包含gnuplot的版本、系统、版权等信息。Terminal type 即使用的方式输出图片。这里默认的terminal是wxt,也就是直接输出到电脑屏幕上。gnuplot支持N多种terminal,没必要都记住。用到哪个现查好了,后续会提到两种。

提示信息之后,是gnuplot的提示符:

gnuplot>

在提示符之后输入各种命令,就可以开始画图了。

如果要退出程序,只需要输入quit或者exit命令。

gnuplot可以下列两种模式之一进行操作:当需要调整和修饰图表使其正常显示时,通过在 gnuplot 提示符中发出命令,可以在交互模式下操作该工具。或者,gnuplot 可以从文件读取命令,以批处理模式生成图表。将拓展名更改为 fileName.plt 就可以将命令保存下来方便重现和更改,因此这也是主要的方式。

2、画一张图

看一个例子。'pic-1.plt'中的代码内容:

set encoding utf8
set terminal pdfcairo enhanced size 4in,3in font "Times New Roman,12"
set output "pic1.pdf" set tics nomirror
set xtics norangelimit
set key box inside
set key at 2.5, 0.95
set xlabel 'time'
set ylabel 'velocity' plot "data.txt" using 1:2 with lines ls 1 lw 2 title "pos1", \
"" using 1:3 with linespoints ls 2 lw 1 pointtype 12 ps 1 title "pos2", \ replot
reset
print "Done!"

'data.txt'中的数据内容:

1 0.2893 0.3061
2 0.3636 0.2857
3 0.2562 0.2041
4 0.1983 0.1633
5 0.4463 0.5714
6 0.6033 0.5714
7 0.9008 0.8571
8 0.2727 0.5714
9 0.7355 0.8367
10 0.1322 0.1837

set是gnuplot中的设置命令,因此我们常常在文尾写上reset来恢复到默认设置,防止对后续生成的图片产生影响。

第1行设置了编码格式,

第2行设置了以PDF的格式输出,设置了图片大小及其中的字体,

第3行设置了输出文件的名称。

第4行设置坐标标记不做镜像处理,其实没有用到。

第5行设置坐标标记不受range的限制。

更多关于绘图环境参数的设置可以参考:http://blog.csdn.net/liyuanbhu/article/details/8502461

一般绘一图形后,gnuplot将函数名称或图形名称置于右上角。key 参数设定可改变名称放置位置。

第6、7行设置了名称摆放的位置在坐标 x,y 上。

第8、9行设置了坐标轴的标示。

第9行利用数据中的第一列和第二列画线不标出原数据点,ls 1 lw 2 即linestyle 1 linewidth 2,标示的为"pos1"。

第9行利用数据中的第一列和第三列画线标出原数据点的线型,with linespoints ls 2 lw 1 即linestyle 2 linewidth 1,标示的为"pos2"。

这里使用了简写,在点线类型设置时常用的简写还有:

plot sin(x) with line linetype 1 linewidth 2

即plot sin(x) w l lt 1 lw 2

plot sin(x) with point pointtype 2 pointsize 2

或plot sin(x) w p pt 2 ps 2

更多的点线风格可以输入test查看然后进行选择。

最后,只需要load一下就好了。如果读取数据有问题估计是没有变更目录。

gnuplot> cd "d:/..."
gnuplot> load "pic-1.plt"

运行结果:

3、再一张图

除了pdf格式的图片,我们有时还需要emf格式的矢量图方便在MS Office中使用,所以有了例2。

'pic-2.plt'中的代码内容:

# set terminal pngcairo  transparent enhanced font "arial,10" fontscale 1.0 size 600, 400
# set output 'histograms.2.png'
set encoding default
set terminal emf size 800,600 font "Times New Roman,12"
set output "pic2.emf" set boxwidth 0.9 absolute
set style fill solid 1.00 border lt -1
set key inside right top vertical Right noreverse noenhanced autotitle nobox
set style histogram clustered gap 1 title textcolor lt -1
set minussign
# set datafile missing '-'
set style data histograms
set xtics border in scale 0,0 nomirror rotate by -45 autojustify
set xtics norangelimit
set xtics () set xlabel '时间'
set ylabel '速度' plot 'data.txt' using 2:xtic(1) ti col , '' u 3 ti col reset
print "Done!"

'data.txt'中数据内容:

时间 位置1  位置2
1 0.4824 0.4845
2 0.5941 0.5876
3 0.8882 0.9175
4 0.3588 0.7423
5 0.7647 0.6186
6 0.1471 0.1546

运行结果:

4、寻求帮助

例2是不是有的命令没明白,自带的help完全够。如果遇到本文没有涉及的其他问题基本都可以在这找到答案。

gnuplot>help

例如之前的set tics 等等。

5、拓展

一些基础的问题我会从这里面翻阅,笔记的年份虽早但简明且图文并茂。

http://blog.sciencenet.cn/blog-373392-495870.html

遇到新的问题还是会从官网的demo里面找灵感。

http://gnuplot.sourceforge.net/demo/

一款好用的绘图软件gnuplot的更多相关文章

  1. gnuplot: 一种更为简洁的曲线,柱状图绘图软件

    gnuplot: 一种更为简洁的曲线,柱状图绘图软件 gnuplot: 一种更为简洁的曲线,柱状图绘图软件 Zhong Xiewei Wed Jun 25 gnuplot简单介绍 关于gnuplot的 ...

  2. 化学绘图软件ChemDraw真的什么都能干!

    今天要介绍的就是一款无所不能的化学绘图软件——ChemDraw,绘制平面化学结构.生成立体化学模型.查询化学信息.编写化学脚本.计算化学数据等等,堪称化学界的必备神器. 化学软件ChemDraw免费获 ...

  3. Mac 设计师必备的设计绘图软件 推荐与下载

    Mac设计师必备的设计绘图软件,为广大设计师推荐一些Mac上实用且强大的软件,使用好的软件,事半功倍,设计出精美的作品. Mac上优秀的设计类软件非常多,绝对不止这几款软件,看看以下内容,希望对你有帮 ...

  4. AutoCAD 2019 for mac 非常好用的CAD三维设计绘图软件

    macOS下用什么cad软件?mac在哪下载cad软件? AutoCAD 2019 for mac 是一款非常好用的CAD三维设计绘图软件,可应用三维建模.CAD.渲染.动画.视觉特效和数字图像. A ...

  5. ToDoList:一款非常优秀的任务管理软件 —— 工具类

    ToDoList是一款非常优秀的任务管理软件,用户可以方便地组织和安排计划.这是一个开源的项目,很多细节都考虑到了,推荐大家使用~ ToDoList 帮你把要做的事情列出来,一项一项,类似思维导图. ...

  6. Smartdraw世界上最流行的商业绘图软件

    Smartdraw 更多图片(5张) SmartDraw是世界上最流行的商业绘图软件.2006 年获美国政府司法部 (U.S. Department of Justice) 专用软件,2007获美国政 ...

  7. c++绘图软件<一>

    准备写一个绘图软件,参考了三层架构(表现层.业务逻辑层.数据访问层). //////////////////////////////////////////////////////////////// ...

  8. Ubuntu 16.04 安装GIMP绘图软件

    Ubuntu上比较好用的绘图软件,GIMP,安装方法如下: 终端输入 : sudo apt-get install gimp ,回车,输入密码,即可安装简单易行. 输入 :gimp ,启动程序.

  9. 推荐一款优秀的代码编辑软件--Source Insight

    “工欲善其事,必先利其器”,好的工具能够提高我们办事的效率,进而提升团队乃至企业的竞争力. 对于软件开发工程师来说,选择一款优秀的代码编辑软件也是很重要的.最近,我看到有很多同事还在用微软的VC ++ ...

随机推荐

  1. Python beautifulsoup 中文乱码

    在爬百度"今日热点事件排行榜"的时候发现打印在控制台的中文全部显示乱码,开始怀疑控制台的原因导致了乱码,后来输出一个中文,发现显示正常. #-*- coding:utf-8 -*- ...

  2. JAVA – 虚函数、抽象函数、抽象类、接口

     本文转载地址:http://blog.csdn.net/trojanpizza/article/details/6556604 1. Java虚函数 虚函数的存在是为了多态. C++中普通成员函数加 ...

  3. vmvare虚拟机经验

    关于网络连接:如果宿主机网络类型:如果是无线网络网络适配器选择桥接模式:如果是物理网线选择NAT模式: 关于刚装完系统apt-get update出现could not lock /var/lib/l ...

  4. xml 和html 语言区别

    都是标记语言(ML),一个是超文本标记语言,一个是扩展标记语言. 不同之处: 1可扩展性:HTML不具备扩展性,而XML是原标记语言,可以用于定义新的标记语言. 2侧重点: HTML侧重于如何表现信息 ...

  5. java虚拟机学习-JVM调优总结-调优方法(12)

    JVM调优工具 Jconsole,jProfile,VisualVM Jconsole : jdk自带,功能简单,但是可以在系统有一定负荷的情况下使用.对垃圾回收算法有很详细的跟踪.详细说明参考这里 ...

  6. 使用Charles Proxy提升iOS开发效率

    以前做前端开发的时候,使用最多的工具就是 Fiddler ,用来定位问题.模拟特定场景非常方便,极大提升了开发效率.而转做 iOS 开发以后,一大头疼的问题是 Fiddler 没有 Mac 版,幸亏找 ...

  7. 利刃 MVVMLight

    已经很久没有写系列文章了,上一次是2012年写的HTLM5系列,想想我们应该是较早一批使用HTML5做项目的人. 相比我当时动不动100+的粉丝增长和两天3000+的阅读量,MVVM Light只能算 ...

  8. Java线程间通信

    1.由来 当需要实现有顺序的执行多个线程的时候,就需要进行线程通信来保证 2.实现线程通信的方法 wait()方法: wait()方法:挂起当前线程,并释放共享资源的锁 notify()方法: not ...

  9. 微信小程序多张图片上传

    微信小程序上传图片每次只能上传一张,所有很多朋友就会问想要多张图片上传怎么办? 首先,我们来看一看wx.chooseImage(object)和wx.uploadFile(OBJECT)这两个个api ...

  10. 有趣而又被忽略的Unity技巧

    0x00 前言 本文的内容主要来自YouTube播主Brackeys的视频TOP 10 UNITY TIPS 和TOP 10 UNITY TIPS #2.在此基础上经过自己的实践和筛选之后,选择了几个 ...