论坛 
IT客
设为首页
加入收藏
关于我们
首页  | 程序 | IT新闻 | IT基础 | 网络 | 系统 | 数据库 | 软件开发 | 软件下载 | 电影频道 | FLASH | 图片 | 技术文档 | 分类信息
网络 Cisco 网络设备 解决方案 系统 Windows Linux 服务器 系统安全 程序 Java Dotnet 数据库 Oracle MySQL MSSQL 软件开发 Web开发 桌面开发 IT基础 网页设计 平面设计 多媒体 工具软件 即时通讯 Flash FLASH爆笑 FLASH游戏 FLASH MTV FLASH彩铃 图片 明星 美女 笑话大全
子栏目  | linux
首页 > 技术文档 > linux >
 
Gnuplot科学绘图——入门篇
作者: 发布时间:2007-07-11 00:42:50 来源:

 本文介绍了下一款免费的绘图软件——Gnuplot,它是使用命令行来绘图的,虽然名字里包含了GNU,但是它并不是GNU的一个部分。你可以在http://www.gnuplot.info找到它。

目录
1. 安装
2. 新手上路、牛刀小试
3. 实战
4. 添油加醋
5. 锦上添花
6. 精雕细琢

安装
由于gnuplot在linux和windows下都有相应的版本,我会分开介绍它们的安装。其实安装都很简单。linux使用的是debian sarge

1. Linux下的安装
在命令行下输入
# apt-get install gnuplot
系统自动获取包信息、处理依赖关系,就可以完成安装
安装完毕后,在命令行下运行:
$ 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> unset key
如果要还原
gnuplot> set key default
然后再运行上面的绘图命令就可以实现没有图例或者恢复图例的效果了

实战
一般情况下使用gnuplot都是科学绘图,因此很多都是放在文章里面。一般优秀的科技文献都是用latex来编写的,所以gnuplot提供了直接输出 tex文件的功能,只需要把output设置为latex就可以了。下面来看一个例子,就把上面的正弦曲线插入到你的文章中。在命令行下输入:
gnuplot> set terminal latex
         set output "sin.tex"
         plot [-3.14:3.14] sin(x)
那么程序自动生成了一个tex文件,其包含一系列代码,都是绘图用的,可以用写字板打开,里面都是一些指令,你完全可以忽略掉。你可以把这个文件直接插入你的文章中,例如
/begin{figure}
  /begin{center}
    /input{sin.tex}
  /end{center}
/end{figure}

编译成PDF后的效果如图

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

添油加醋
当然前面的图已经很不错了,就是稍显单调,这里给它加点装饰,来个x轴和y轴的提示、图片是说明。这样才更像一幅论文里面的图片。在命令行下输入以下代码:
gnuplot> set terminal latex
         set output "sinagain.tex"
         set size 5/5.,4/3.
         set format xy "$%g$"
         set title "This is a plot of $y=//sin(x)$"
         set xlabel "This is the $x$ axis"
         set ylabel "This is//the//$y$ axis"
         plot [0:6.28] [0:1] sin(x)
依旧,生成一个tex文件,安装前面讲的方法把它包含进来。然后编译成PDF的效果就是如图了:


这里用到了几个命令:
set size 设置图片的大小
set format xy 设置x、y轴文字的格式
set title 设置图片标题
set xlabel 设置x轴的文字

锦上添花

一般情况下,科技论文的图片很多都含有好几个图线,那么这里就介绍下如何在一张图里显示多张图片。
先看代码:
gnuplot> set terminal latex
         set output "combine.tex"
         set format xy "$%g$"
         set title "Combination"
         set xlabel "$x$ axis"
         set ylabel "$y$ axis"
         plot [-3.14:3.14] 0.2*x with points, sin(x) with lines
这里没有很特别的地方,只是plot多了一个项目,当要绘制多个图线的时候需要用逗号来分隔,注意这里不是中文的逗号,而是西文的逗号。另外with后面的参数是说用什么线性来绘制。出来的效果看下面的图:

精雕细琢
接下来再对图片进行加工。一般图片x轴每个计数单位都是希望能够控制的,而不是系统自己来决定的,那么可以通过以下的代码来实现。
看代码:
gnuplot> set terminal latex
         set output "tic.tex"
         set format y "$%g$"
         set format x "$%.2f$"
         set title "This is $/sin(x)$"
         set xlabel "This is the $x$ axis"
         set ylabel "$/sin(x)$"
         set xtics -pi, pi/4
         plot [-pi:pi] sin(x)

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

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

 

  
评论】【加入收藏夹】【 】【打印】【关闭
※ 相关信息
无相关信息

发表评论
用户名: 密码:
验证码: 匿名发表
 
 搜索文章
 最新文章
·Win2K入侵检测实例分析
·Win2000 Server安全入门
·使用微软安全工具包加固Win2
·Windows2000安全检查清单
· 安全管理
·利用安全工具包保持系统的最
·怎么实施和做好入侵检测
·Win2k建立安全WEB站点的解决
·用“$”来加强共享资源的安全
·让你的IIS无懈可击
 热点文章 
· 我的xfce学习笔记(汉化)
·三个方法优化MySQL数据库查询
·IPW2100安装详细步骤说明
·Gnuplot科学绘图——入门篇
·Linux下使用Evolution收发Em
·在Archlinux 安装Maya7.01
·安装Linux中文输入法fcitx
·向Linux迁移的人才准备
·使用指南:好用的播放器mpd
·你应该知道的10个MySQL客户启

社区关于我们广告业务信息反馈合作伙伴网站地图
ITKee.Com 版权所有
Copyright © 2008 All rights reserved