Chinaunix首页 | 论坛 | 博客
  • 博客访问: 86917
  • 博文数量: 16
  • 博客积分: 146
  • 博客等级: 入伍新兵
  • 技术积分: 139
  • 用 户 组: 普通用户
  • 注册时间: 2011-04-29 22:41
文章分类

全部博文(16)

文章存档

2012年(2)

2011年(14)

分类:

2011-11-27 22:13:49

原文地址:gnuplot笔记(一) 作者:pkuwwt

gnuplot简介
gnuplot是一个历史悠久的绘图软件,跨平台,特别适合于数据处理,支持非常多种类的格式输出。根据我的理解,它至少能做:
1. 常见的数学函数绘制,比如sin(x), cos(x), log(x)等等, 相信最简单的一条绘图命令应该是

plot sin(x)

不要怀疑这里的x没有定义,因为gnuplot中横坐标默认是x, 绘坐标默认是y

2. 从文件中读取数据,然后绘制离散图

plot "datafile" using 1:2

这句命令的意思是:以数据文件中的第一列为横坐标,第二列为绘坐标,绘制散点图(默认)。
当然,不只是散点图,也可以是点线,线,而线和点的尺寸和样式也是可以指定的

3. 对数据作一些变换后,再绘出
简单讲,就是能够利用内置的一些函数对读取的数据进行一些处理之后,再输出,比如

plot "datafile" using 1:($2**2)

这句命令的意思是,仍然使用第一列作为x值,而y值是第二列数据的平方。括号内是一个表达式,对于某列的引用使用$符号。

4. 三维绘图

splot sin(x)*cos(y)

当然,数据文件也是支持的,如果一个数据文件有3列,

splot "datafile" using 1:2:3

你还可以绘制保存矩阵数据的文件,比如存有m行n列个数据的文件,可以这样绘制:

splot "datafile" matrix

上面的命令得到的是一个基于网格的散点图,x取值为1到m, y取值为1到n, 而z值显然从数据文件中得到。

5. 输出图像
上面提到的命令都是直接在一个界面中绘出图形,这其实是一种终端(linux下是wxt),或称为输出设备。然而,你可以指定为其它终端(比如jpeg, png)。下面的命令可以得到一幅图像:

set terminal jpeg
set output "out.jpg"
plot sin(x)

如果你想查看gnuplot支持哪些终端,你可以

set terminal


6. 其它特性
其实,上面提到的只是惊鸿一瞥。其它的我所知道的,还包括支持脚本,用户自定义函数,逐点指定颜色,常见图表绘制(直方图,等值线图等等),基本数学函数和复数的支持。总之,gnuplot的作用就是数据的可视化。当然,gnuplot只是一个数据绘制软件,它不能替代数据处理软件和通常的绘图软件。但是,它Doing one thing, and doing it very, very well.

7. 帮助和文档
最根本的材料应该是gnuplot附带的文档,在linux下可以用

info gnuplot

查看文档。
另外一本很好的入门书籍是<>
在gnuplot的命令模式下,如下几个命令是常用到的
查看plot的帮助,当然也可以是其它关键字

help plot

常看用户定义的函数

show functions

查看系统和用户定义的变量

show variables

阅读(5950) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~