空灵学院

 找回密码
 立即注册

扫一扫,访问微社区

搜索
查看: 2231|回复: 0

gnuplot 让您的数据可视化

[复制链接]

1137

主题

1761

帖子

7558

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
7558
发表于 2016-3-11 19:13:06 | 显示全部楼层 |阅读模式
gnuplot下载->
由于gnuplot在linux和windows下都有相应的版本,我会分开介绍它们的安装。其实安装都很简单。linux使用的是debiansarge

  1.Linux下的安装

  在命令行下输入

  #apt-getinstallgnuplot

  系统自动获取包信息、处理依赖关系,就可以完成安装

  安装完毕后,在命令行下运行:

  $gnuplot

  就进入了gnuplot

  系统出现:

  gnuplot>

  这个是这个软件的提示符,熟悉shell的同学都晓得这个gnuplot的shell。所有的命令都在这里输入。

  2.Windows下的安装

  到http://www.sourceforge.net搜 索gnuplot,然后下在win32的zip压缩包,里面包含全部需要的文件,下载,释放到本地硬盘的目录里,假设是c:gnuplot。然后到这个目 录的下查找bin这个目录,在bin目录下有一个名为wgnuplot.exe的文件,双击该文件,就出现了GUI界面的gnuplot,如图:



至此,你已经成功安装了gnuplot,可以开始下面的操作了

  新手上路、牛刀小试

  既然安装好了gnuplot,那就要来试试看,画个最简单的吧,sin(x)

  在提示符下面输入:

 gnuplot>plot[-3.14:3.14]sin(x)

  然后就可以看到结果了,如图:

  


  上面有横轴有纵轴,还有图例,好像比较小巧的软件还不能有那么全的功能,我知道的就是matlab可以画,可能其他数学软件也可以,不过比起这个小个头的软件..........

  如果你不需要上面的图例,你可以在运行:

  gnuplot>unsetkey

  如果要还原

  gnuplot>setkeydefault

  然后再运行上面的绘图命令就可以实现没有图例或者恢复图例的效果了

  实战

   一般情况下使用gnuplot都是科学绘图,因此很多都是放在文章里面。一般优秀的科技文献都是用latex来编写的,所以gnuplot提供了直接输 出 tex文件的功能,只需要把output设置为latex就可以了。下面来看一个例子,就把上面的正弦曲线插入到你的文章中。在命令行下输入:

  gnuplot>setterminallatex

  setoutput"sin.tex"

  plot[-3.14:3.14]sin(x)

  那么程序自动生成了一个tex文件,其包含一系列代码,都是绘图用的,可以用写字板打开,里面都是一些指令,你完全可以忽略掉。你可以把这个文件直接插入你的文章中,例如

  egin{figure}

  egin{center}

  input{sin.tex}

  end{center}

  end{figure}

  编译成PDF后的效果如图



以后凡是要生成插入latex的图片,就可以用上面的办法实现。

  添油加醋

  当然前面的图已经很不错了,就是稍显单调,这里给它加点装饰,来个x轴和y轴的提示、图片是说明。这样才更像一幅论文里面的图片。在命令行下输入以下代码:


gnuplot>setterminallatex

  setoutput"sinagain.tex"

  setsize5/5.,4/3.

  setformatxy"$%g$"

  settitle"Thisisaplotof$y=\sin(x)$"

  setxlabel"Thisisthe$x$axis"

  setylabel"Thisis\the\$y$axis"

  plot[0:6.28][0:1]sin(x)

  依旧,生成一个tex文件,安装前面讲的方法把它包含进来。然后编译成PDF的效果就是如图了:

  



  这里用到?父雒睿?

  setsize设置图片的大小

  setformatxy设置x、y轴文字的格式

  settitle设置图片标题

  setxlabel设置x轴的文字

  锦上添花

  一般情况下,科技论文的图片很多都含有好几个图线,那么这里就介绍下如何在一张图里显示多张图片。

  先看代码:

  gnuplot>setterminallatex

  setoutput"combine.tex"

  setformatxy"$%g$"

  settitle"Combination"

  setxlabel"$x$axis"

  setylabel"$y$axis"

  plot[-3.14:3.14]0.2*xwithpoints,sin(x)withlines

  这里没有很特别的地方,只是plot多了一个项目,当要绘制多个图线的时候需要用逗号来分隔,注意这里不是中文的逗号,而是西文的逗号。另外with后面的参数是说用什么线性来绘制。出来的效果看下面的图:



  精雕细琢

  接下来再对图片进行加工。一般图片x轴每个计数单位都是希望能够控制的,而不是系统自己来决定的,那么可以通过以下的代码来实现。


  看代码:

  gnuplot>setterminallatex

  setoutput"tic.tex"

  setformaty"$%g$"

  setformatx"$%.2f$"

  settitle"Thisis$sin(x)$"

  setxlabel"Thisisthe$x$axis"

  setylabel"$sin(x)$"

  setxtics-pi,pi/4

  plot[-pi:pi]sin(x)

  把生成的tex文件插入你的latex文件中,就出现了以下的效果:

  




 还是没有大变化,就加了一个setxtics这个是设置x的间距,也就是从-pi开始、每隔pi/4出现一次,pi是gnuplot内建的一个变量,所以只要输入pi,系统知道其含义。


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|空灵学院 ( 11033542 )

GMT+8, 2024-4-20 20:36 , Processed in 0.031978 second(s), 29 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表