漂亮的图片在一篇报告中是必不可少的。这里推荐一款绘图软件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. 开涛spring3(9.2) - Spring的事务 之 9.2 数据库事务概述

    9.2.1  概述 Spring框架支持事务管理的核心是事务管理器抽象,对于不同的数据访问框架(如Hibernate)通过实现策略接口 PlatformTransactionManager,从而能支持 ...

  2. java虚拟机学习-JVM调优总结-新一代的垃圾回收算法(11)

    垃圾回收的瓶颈 传统分代垃圾回收方式,已经在一定程度上把垃圾回收给应用带来的负担降到了最小,把应用的吞吐量推到了一个极限.但是他无法解决的一个问题,就是Full GC所带来的应用暂停.在一些对实时性要 ...

  3. CentOS上安装NodeJs

    (1)参照:http://www.cnblogs.com/zhangqingsh/archive/2013/04/15/3022583.html  安装Python2.7 (2)安装Nodejs yu ...

  4. Unsupervised Learning and Text Mining of Emotion Terms Using R

    Unsupervised learning refers to data science approaches that involve learning without a prior knowle ...

  5. 一天搞定CSS:表单(form)--20

    1.表单标签 2.input标签属性与取值 代码演示 <!DOCTYPE html> <html> <head> <meta charset="UT ...

  6. Java经典编程题50道之二十六

    请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母. public class Example26 {    public static void main(Stri ...

  7. Python爬虫Dota排行榜爬取

    1.分析网站 打开开发者工具,我们观察到排行榜的数据并没有在doc里 doc文档 在Javascript里我么可以看到下面代码: ajax的post方法异步请求数据 在 XHR一栏里,我们找到所请求的 ...

  8. Vue单文件组件基础模板

    背景 相信大家在使用Vue开发项目时,基本都是以单文件组件的形式开发组件的,这种方式好处多多: 1.代码集中,便于开发.管理和维护 2.可复用性高,直接将vue文件拷贝到新项目中 我暂时就想到这两点, ...

  9. java map集合的知识

    /** * Map用于存储键值对,不允许键重复,值可以重复. * (1)HashMap是一个最常用的Map,它根据键的hashCode值存储数据,根据键可以直接获取它的值,具有很快的访问速度. * H ...

  10. 初始化CSS

    为什么要初始化CSS? 建站老手都知道,这是为了考虑到浏览器的兼容问题,其实不同浏览器对有些标签的默认值是不同的,如果没对CSS初始化往往会出现浏览器之间的页面差异.当然,初始化样式会对SEO有一定的 ...