未分类

Graphplot3d和map函数

今天我的无欲症又发作了,就是那种突然不想做事的症状,就像斯蒂芬金的兰格利尔人一书中所描写的失落的时空。

食物没有味道,户外没有风,颜色都稍稍发灰,一切物质都不像那物质本身。

 
 

好在有一百天计划,所以,还是要写东西,继续写东西。

 
 

不过今天也做不了太多的事情,何况根本不想做什么事情,玩软件吧。

打开mathematica,研究一下绘图。

Mathematica这个大萌物,自从使用上之后,就一直爱不释手,可惜现在用得还是少。。。毕竟人家是搞science的人玩
的,我现在已经越来越可能是一个engineer

 
 

mathematica的资料不是很多,但是最好的资料却是在其官网

http://www.wolfram.com/learningcenter/tutorialcollection/

这个网址分专题罗列了这个软件的全部用法,即全且新,印刷质量又好,真是拿起来就让人满腔地学习欲望。。。

 
 

随手打开了GraphDrawing.pdf(我现在就需要图像刺激)

第一个函数挺长的。


 
 

一点点来八一八这个很长的函数,它的输入是这么四个图形。

 
 


四个图形,看起来,完全不同,但是实际上其只是表示不同,而含义是一样的。

比如graphplot完全是graphplot3D图在平面上的投影。

 
 


画这样的图,首先要指定结点,也就是上图中的2,3,4等等数字。来看另一个简单的例子:



这其中的每个点,即是所赋的值的1,2,3,5,其值是可跳跃的。

而第一个函数的复杂之处在于,它使用了一个mapmap的功能就是定义一个匿名函数,然后将这个匿名函数,依次作用到后面的参数列表上。

 
 

map是函数式编程概念中常见的一个例子,在clojure中,python中都能看到其踪影。而天下语言一大通。就连匿名函数的定义是相似的。clojure也和mathematica一样,使用“#”函数来进行定义。

imagesize参数,可以指定最后绘出的图形的大小。

 
 

最后再画个稍微毛线些的