当前时区 GMT+8, 现在时间是 2008-8-28 14:31 游客: 注册 登录 仅登录论坛 | 搜索 帮助


标题: 简要介绍gnuplot绘函数图-给新手
airship
新手上路
Rank: 1


UID 49880
精华 0
积分 29
帖子 14
阅读权限 10
注册 2003-7-11
来自 China
状态 离线
发表于 2007-6-4 00:35  资料  短消息  加为好友  QQ
简要介绍gnuplot绘函数图-给新手

简要介绍gnuplot绘函数图

计算机图形学有个小作业,需要画一个函数的图像,我瞬间想到了几种方法:

QUOTE:
matlab
maple

mathmatica
gnuplot
metapost
octave

前三个大软件,动用起来有用牛刀杀鸡之陷,再者说用的都是D版,不大光明磊落。用metapost语言也是一个选择,但是不够简单灵活,用octave当然也行,虽说是自由软件,但是同样是把牛刀,所以就决定祭出GNU画图必备工具gnuplot。

首先是安装,我自己用的ubuntu,安装再简单不过了

[code:1]
sudo apt-get install gnuplot gnuplot-doc

[/code:1]
作业很简单,画这样一个函数: r(t)=(t^2-2t+1,t^3-2t^2+t)和y(t)=(2t+1,t^3),t是从0到1。
这样简单的函数作图是gnuplot最擅长不过的了。

写上这样一个plot.dem文件先:

[code:1]
set parametric #参数化作图
set dummy t #设置参数作图的自由变量(独立变量)
set autoscale #自动缩放
set samples 160 #采样率 默认为100

set title "" #标题设置
set key box
set key below #标题等信息的位置
set trange [0.00001:1]  #t的范围

plot  t*t-2*t+1,t*t*t-2*t*t+t title "(t^2-2t+1,t^3-2t^2+t)" #就是这个画图:)

pause -1 "Hit return to continue" #防止窗口一闪就没了

plot t*t+1,t*t*t title "(2t+1,t^3+4t+1)" #再画一张!

pause -1 "Hit return to continue" #再停

plot t*t+1,t*t*t, t*t-2*t+1,t*t*t-2*t*t+t #again
pause -1 "Hit return to continue" #pause again

[/code:1]

然后在终端里运行:

[code:1]
gnuplot plot.dem

[/code:1]
三张漂亮的图片就出来了,方便快捷吧!

等等,我们要提交作业,不能只打印到屏幕上,要有图像文件啊,什么?截图阿,太土了,更重要的是,太小看我们的gnuplot了啊。千万不能那样干:)

我们在plot之前加上一句这个

[code:1]
set terminal postscript eps color lw 1 “Helvetica” 20

[/code:1]
如果想让线条粗些,可以修改 lw 后面的 1,不信改成100你试试:)

然后再加上一句这个来设置输出文件:

[code:1]
set out ‘a.eps’
[/code:1]

现在文件是这个样子:

[code:1]
set parametric #参数化作图
set dummy t #设置参数作图的自由变量(独立变量)
set autoscale #自动缩放
set samples 160 #采样率 默认为100
set title "" #标题设置

set key box
set key below #标题等信息的位置
set trange [0.00001:1]  #t的范围
set terminal postscript eps color lw 1 "Helvetica" 20
set out 'a.eps'

plot t*t-2*t+1,t*t*t-2*t*t+t title "(t^2-2t+1,t^3-2t^2+t)" #就是这个画图:)
pause -1 "Hit return to continue" #防止窗口一闪就没了

set out 'b.eps'
plot t*t+1,t*t*t title "(2t+1,t^3+4t+1)" #再画一张!

pause -1 "Hit return to continue" #再停

set out 'c.eps'
set title ""
plot t*t+1,t*t*t, t*t-2*t+1,t*t*t-2*t*t+t #again
pause -1 "Hit return to continue" #pause again
[/code:1]
运行后就会生成eps图片了,矢量图片,可以任意缩放哦:)没用过eps?就听说过gif,jpg啥的?呵呵,没关系,不想用这样的矢量图也可以:
[code:1]
set terminal jpeg (png ) 等等都可以
[/code:1]

大家可以看看gnuplot4.0新支持的文件格式,和gnuplot4.2 新支持的文件格式,有很多可供选择:)





顶部
cyhwy
新手上路
Rank: 1


UID 37902
精华 0
积分 89
帖子 42
阅读权限 10
注册 2003-5-17
来自 China.gif
状态 离线
发表于 2007-7-6 17:49  资料  短消息  加为好友 
永中office2007也可以实现
更容易操作

顶部
Huda
注册会员
Rank: 2


UID 1136
精华 0
积分 280
帖子 116
阅读权限 20
注册 2002-7-8
来自 China
状态 离线
发表于 2007-7-11 07:41  资料  短消息  加为好友 
没有图形界面的工具,距离普通用户实用还有十万八千里之遥





相信Linux就是相信自己
顶部
superpig
公社版主



UID 12746
精华 10
积分 2625
帖子 2402
阅读权限 225
注册 2003-1-16
来自 Beijing, Changsha
状态 离线
发表于 2007-7-15 11:11  资料  短消息  加为好友  QQ
这个东西,还没用过,不知道和Matlab以及Mathematica比较起来如何??

感觉这样的命令行还是比较适用于科学绘图,赫赫~~





快乐的学习,快乐的生活~
顶部
 


Powered by Discuz! 5.5.0  © 2001-2007 Comsenz Inc.
清除 Cookies - 联系我们 - 中国Linux公社 - WAP