当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 12 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : [分享]gnuplot做函数图入门介绍
帖子发表于 : 2007-05-31 23:29 
头像

注册: 2007-05-29 18:12
帖子: 76
地址: THU
送出感谢: 0 次
接收感谢: 0 次
原帖见fire3-简要介绍gnuplot绘函数图

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

引用:
matlab
maple

mathmatica
gnuplot
metapost
octave


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

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

代码:
sudo apt-get install gnuplot gnuplot-doc


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

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

代码:
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



然后在终端里运行:

代码:
gnuplot plot.dem


三张漂亮的图片就出来了,方便快捷吧!

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

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

代码:
set terminal postscript eps color lw 1 “Helvetica” 20


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

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

代码:
set out ‘a.eps’


现在文件是这个样子:

代码:
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

运行后就会生成eps图片了,矢量图片,可以任意缩放哦:)没用过eps?就听说过gif,jpg啥的?呵呵,没关系,不想用这样的矢量图也可以:
代码:
set terminal jpeg (png ) 等等都可以


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


_________________
星火燎原
http://www.fire3.cn/ 星火燎原--我的blog,关于Ubuntu,Linux,Programming,IT&Web


最后由 fire3 编辑于 2007-06-10 21:46,总共编辑了 1 次

页首
 用户资料  
 
2 楼 
 文章标题 :
帖子发表于 : 2007-06-01 19:43 

注册: 2006-07-09 12:22
帖子: 1331
地址: 南京
送出感谢: 0 次
接收感谢: 1
纯顶一下 :wink:


页首
 用户资料  
 
3 楼 
 文章标题 :
帖子发表于 : 2007-06-06 23:49 
头像

注册: 2006-08-31 12:20
帖子: 61
地址: 香港中文大学
送出感谢: 0 次
接收感谢: 0 次
不喜欢gnuplot
不想另外去学它的脚本,于是我用matplotlib,python的


_________________
最新的国外博士硕士信息
----------------------------
Dell Inspiron 1525
Latex Python VIM Ooo
----------------------------
理性与自由
信念与尊严
生死与超越


页首
 用户资料  
 
4 楼 
 文章标题 :
帖子发表于 : 2007-06-07 16:04 

注册: 2006-09-09 0:35
帖子: 349
送出感谢: 3
接收感谢: 0 次
freshfish 写道:
不喜欢gnuplot
不想另外去学它的脚本,于是我用matplotlib,python的

这个for python的好像还不错,不过也是要学python脚本,其实,数学本身就是脚本啊。
开源的里面,就没看到一个可视化函数绘图的软件。


页首
 用户资料  
 
5 楼 
 文章标题 :
帖子发表于 : 2007-06-08 16:26 
头像

注册: 2006-12-29 20:13
帖子: 694
送出感谢: 0 次
接收感谢: 0 次
labplot还说得过去


_________________
在学习linux的道路上自在而行。


页首
 用户资料  
 
6 楼 
 文章标题 :
帖子发表于 : 2007-06-08 18:18 

注册: 2006-01-18 15:01
帖子: 1074
送出感谢: 0 次
接收感谢: 1
小顶一下~
不管怎样,对原创,自己写代码,写教程的同学总是支持的~
做人要实干~


页首
 用户资料  
 
7 楼 
 文章标题 :
帖子发表于 : 2007-06-08 18:59 

注册: 2006-01-10 19:09
帖子: 1334
送出感谢: 0 次
接收感谢: 0 次
pengtu 写道:
freshfish 写道:
不喜欢gnuplot
不想另外去学它的脚本,于是我用matplotlib,python的

这个for python的好像还不错,不过也是要学python脚本,其实,数学本身就是脚本啊。
开源的里面,就没看到一个可视化函数绘图的软件。


去年这个时候我就在用k还是g里面的程序临时救急画函数图 kmplot


页首
 用户资料  
 
8 楼 
 文章标题 :
帖子发表于 : 2007-06-08 21:34 
头像

注册: 2007-03-01 21:04
帖子: 283
地址: 福建
送出感谢: 0 次
接收感谢: 0 次
顶,说不定以后会用到


页首
 用户资料  
 
9 楼 
 文章标题 :
帖子发表于 : 2007-06-09 9:46 
头像

注册: 2005-10-04 10:59
帖子: 1928
地址: 上海
送出感谢: 0 次
接收感谢: 1
freshfish 写道:
不喜欢gnuplot
不想另外去学它的脚本,于是我用matplotlib,python的


我gnuplot和matplotlib都用,不过matplotlib少些,gnuplot有时也是用python-gnuplot来调用的。

matplotlib里面好像不能做左右各一个Y轴的图,这是我用gnuplot更多的原因之一。


_________________
弄个dropbox空间来备份文件或者做私人代码服务器
配置:git://github.com/roylez/dotfiles.git
主页:http://roylez.heroku.com
各种稀奇玩意儿:http://dooloo.info


页首
 用户资料  
 
10 楼 
 文章标题 :
帖子发表于 : 2007-06-10 12:39 

注册: 2006-06-05 22:12
帖子: 42
送出感谢: 0 次
接收感谢: 0 次
楼上的头像台邪恶了。


页首
 用户资料  
 
11 楼 
 文章标题 :
帖子发表于 : 2007-06-10 15:52 
头像

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 272
画函数,有什么用哦。
都有图形界面的。


_________________
● 鸣学


页首
 用户资料  
 
12 楼 
 文章标题 :
帖子发表于 : 2007-06-10 21:50 
头像

注册: 2007-05-29 18:12
帖子: 76
地址: THU
送出感谢: 0 次
接收感谢: 0 次
nkzealot 写道:
freshfish 写道:
不喜欢gnuplot
不想另外去学它的脚本,于是我用matplotlib,python的


我gnuplot和matplotlib都用,不过matplotlib少些,gnuplot有时也是用python-gnuplot来调用的。

matplotlib里面好像不能做左右各一个Y轴的图,这是我用gnuplot更多的原因之一。

matplotlib,这个我还没用过:)找时间用用:)
不过最近画了几个图都是用的maple ,哈哈,因为公式是用maple推导的,发现它的smartplot挺好用:)


_________________
星火燎原
http://www.fire3.cn/ 星火燎原--我的blog,关于Ubuntu,Linux,Programming,IT&Web


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 12 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 4 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译