SciPy可视化实例

实例1:mlab绘制洛伦茨吸引子轨迹

洛伦茨吸引子轨迹的微分方程
洛伦茨吸引子轨迹的微分方程

#scipy洛伦茨吸引子轨迹

from scipy.integrate import odeint

import numpy as np

from mayavi import mlab

def lorenz(w,t,a,b,c):

       #给出位置矢量w,和三个参数a,b,c计算出

       #dx/dt,dy/dt,dz/dt的值

        x,y,z = w.tolist()

       #直接与lorenz的计算公式对应

       return np.array([a * (y - x),x * (b - z)-y,x * y - c * z])

#使用不同的位移初始值,调用odeint,对微分方程求解

t = np.arange(0,30,0.01)#创建时间点

#调用ode对lorenz进行求解,用两个不同的初始值

track1 = odeint(lorenz,(0.0,1.00,0.0),t,args=(10.0,28.0,3.0))

track2 = odeint(lorenz,(0.0,1.01,0.0),t,args=(10.0,28.0,3.0))

mlab.plot3d(track1[:,0],track1[:,1],track1[:,2],color=(1,0,0),tube_radius=0.1)

mlab.plot3d(track2[:,0],track1[:,1],track1[:,2],color=(0,0,1),tube_radius=0.1)

洛伦茨吸引子轨迹

实例2:凸包的二维/三维可视化

SciPy的空间算法库-spatial,spatial模块提供了空间算法类:K-d树,凸包,Voronoi图,Delaunay三角化

凸包:指n维空间中的一个区域,该区域中任意两点之间的线段都完全包含在该区域之中,二维平面上的凸多边形就是典型的凸包。

ConvexHull可以快速计算包含N维空间点的集合的最小凸包。

#凸包的二维/三维可视化

import numpy as np

np.random.seed(42)

points2d = np.random.rand(10,2)#一组二维平面的随机点

from scipy import spatial

ch2d = spatial.ConvexHull(points2d)#上述点的对象

print(ch2d.simplices) #每条边线的两个顶点在points2d的下标

print(ch2d.vertices) #多边形每个顶点在points2d的下标

import pylab as pl

poly = pl.Polygon(points2d[ch2d.vertices],fill=None,lw=2,color='r',alpha=0.5)

ax = pl.subplot(aspect='equal')

pl.plot(points2d[:,0],points2d[:,1],'go')

for i,pos in enumerate(points2d):

      pl.text(pos[0],pos[1],str(i),color='blue')

ax.add_artist(poly)

pl.show()


二维凸包

importnumpy as np

fromscipyimportspatial

fromtvtk.apiimporttvtk

fromtvtkfuncimportivtk_scene

def  convexhull(ch3d):

       poly=tvtk.PolyData()

        poly.points=ch3d.points

       poly.polys=ch3d.simplices

       sphere=tvtk.SphereSource(radius=0.02)

       points3d=tvtk.Glyph3D()

       points3d.set_source_connection(sphere.output_port)

      points3d.set_input_data(poly)

#绘制凸多面体的面,设置半透明度

      m1=tvtk.PolyDataMapper()

      m1.set_input_data(poly)

       a1=tvtk.Actor(mapper=m1)

      a1.property.opacity=0.3

#绘制凸多面体的边,设置为红色

      m2=tvtk.PolyDataMapper()

     m2.set_input_data(poly)

     a2=tvtk.Actor(mapper=m2)

      a2.property.representation="wireframe"

      a2.property.line_width=2.0

      a2.property.color=(1.0,0,0)

#绘制凸多面体的顶点,设置为绿色

      m3=tvtk.PolyDataMapper(input_connection=points3d.output_port)

      a3=tvtk.Actor(mapper=m3)

       a3.property.color=(0.0,1.0,0.0)

      return[a1, a2, a3]

importnumpy as np

fromscipyimportspatial

fromtvtk.apiimporttvtk

np.random.seed(42)

points3d=np.random.rand(40,3)

ch3d=spatial.ConvexHull(points3d)

actors=convexhull(ch3d)#定义convexhull的Actor

win=ivtk_scene(actors)#场景用VTK绘制出来

三维凸包
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,332评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,508评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,812评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,607评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,728评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,919评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,071评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,802评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,256评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,576评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,712评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,389评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,032评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,798评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,026评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,473评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,606评论 2 350

推荐阅读更多精彩内容