python绘三维图,手机三维绘图软件中文版
网上下载玛雅维的官方帮助文档,里面有很多例子,下面的记录都是查看手册后得到的。
http://代码。ent think。com/projects/may avi/docs/development/latex/may avi/may avi _ user _ guide。可移植文档格式文件的扩展名(portable document format的缩写)
链接:https://潘。百度一下。com/s/1 mu QFD 9 et GW 0 puat 4b 2 sgyw
提取码:0wkd
大蟒的mayavi.mlab库中的绘图函数有很多候选参数,但下文记录并没有过多讨论,本人也是需要用到才查看手册的。
安装好玛雅2的绘图环境后,可以结合数组进行科学绘图,在代码中事先加入如下代码:
进口玛雅维。mlab作为mlab从numpy导入exp,sin,cos,tan,random,mgrid,ogrid,linspace,sqrt,pi导入numpy作为NP导入matplotlib。py绘图为pltmlab。图(fg color=(0,0,0),bgcolor=(1,1,1)) #更改背景色#添加矩阵实验室的最高点函数def peaks(x,y):return 3.0 *(1.0-x)* * 2 * exp(-(x * * 2)-(y 1.0)* * 2)-10 *(x/5.0-x * * 3-y * * 5)* exp(-x * * 2-y * * 2)-1.0/3.0 * exp(-(x 1.0)* * 2-y * * 2)首先从帮助手册上了解下玛雅维的色彩映射表,如下图:
下面列举常用的三维绘图函数和简单例子。
一、条形图*条形图,)
*条形图(x,y,s,)
*条形图(x,y,f,)
*条形图(x,y,z,s,)
*条形图(x,y,z,f,)
如果只传递一个参数,可以是一维(一维),二维(二维)或3维(三维)的给定向量长度的数组;
如果传递三个参数(x,y,s)或(x,y,f),x,y是对应于数组s的二维(二维)坐标,也可以是可调用的函数f,该函数返回数组;
四个参数的时候(x,y,z)表示三维坐标
s=np.random.rand(3,3)mlab。条形图mlab。向量条()mlab。显示()
x,y=np.mgrid[-5:5:20j,-5:5:20j]s=peaks(x,y)#peaks函数前面已经定义mlab.barchart(x,y,s)mlab.vectorbar()mlab.show()
二、轮廓3d *轮廓3d(标量.)
*轮廓3d(x,y,z,标量,)
*轮廓3d(x,y,z,f,)
标量是三维数组(三维),x,y,z用numpy.mgrid生成,是三维数组
x,y,z=ogrid[-5:5:64j,-5:5:64j,-5:5:64j]标量=x * x * 0.5y * y z * z * 2.0 mlab。轮廓3d(标量,轮廓=6,透明=真)mlab。colorbar()mlab。显示()
三、轮廓_表面*轮廓_表面(s,)
*等高线_表面(x,y,s,)
*轮廓_表面(x,y,f,)
s是二维数组,f是可调用的函数,例如最高点函数
x和y可以是1D或2D数组(如numpy.ogrid或numpy.mgrid返回的数组)
x,y=np.mgrid[-5:5:70j,-5:5:70j]#绘制最高点函数的等高线轮廓_surf(x,y,峰值,轮廓=9)mlab。colorbar()mlab。显示()
四、imshow * imshow(s,)
s是一个二维数组。使用色彩映射表将s的值映射到一种颜色。
s=np.random.rand(3,3) #生成随机的33数组mlab。im显示mlab。colorbar()mlab。显示()
五、网格*网格(x,y,z,)
x,y,z是2D数组,形状都一样,给出了曲面顶点的位置。
x,y,z都是二维数组,拥有相同的形状,而且z代表了平面坐标(x,y)对应下的值,下面绘制的是矩阵实验室的最高点函数三维图,可能是因为绘图比例的原因看起来并没有矩阵实验室下绘制的好看
y,x=np.mgrid[-5:5:70j,-5:5:70j]z=peaks(x,y)mlab.mesh(x,y,z)mlab.colorbar()mlab.show()
六、冲浪*冲浪(s,)
*冲浪(x,y,s,)
* surf(x,y,f,)
x,y可以是一维或者二维的数组(比如numpy.ogrid或numpy.mgrid返回的数组)
如果只传递了参数数组s,那么x,y就被认为是数组s的索引值,并且创建等宽的数据集(如果只传递了一个数组s,则假定x和y数组由数组的索引组成,并创建一个均匀间隔的数据集。)
冲浪和网状物的不同之处在于冲浪的参数x,y可以是一维(一维)的。
mlab.clf()x,y=mgrid[-10:10:100j,-10:10:100j]r=sqrt(x * * 2y * * 2)z=sin(r)/r # mlab。surf(x,y,z,wrap_scale=auto)mlab。colorbar()mlab。显示()
冲浪函数同样可以绘制最高点曲面,
pk_y,pk_x=np.mgrid[-5:5:70j,-5:70j]PK _ z=peaks(PK _ x,PK _ y)MLB。MLB冲浪(PK _ z,warp_scale=auto ,colormap= jet )。彩条()MLB。显示()这里只传递了一个参数pk_z,
七三维打印*三维打印(x,y,z ,-我.)
*三维打印(x,y,z,s ,-我.)
数据点之间绘制线段、x、y、z、s都是具有相同形状(形状)的努比数组或列表(列表)、x、y、z是三维坐标,也就是空间中数据点的位置
MLB。三维打印(cos(t)、sin(3*t)、cos(5*t)、color=(0.23,0.6,1)、color map= spectral )MLB。彩条()MLB。显示()
八三维(three dimension的缩写)点* 3d点(x、y、z-我.)
* 3d点(x,y,z,s ,-我.)
* 3d点(x,y,z,f ,-我.)
和前面的三维打印差不多,只不过三维(three dimension的缩写)点只绘制三维坐标下的点(x,y,z),仍然用前面的例子。
t=mgrid[-pi:pi:50j]s=sin(t)#参数-好吧是设置每个点的大小(缩放)模式可选MLB。点3d(cos(t),sin(3*t),cos(5*t),s,mode=sphere ,line _ width=1)MLB。彩条()MLB。显示()
参数的模式(模式)可选项如下图:
九3d箭筒* 3d箭筒(u、v、w、我.)
* 3d档案(x,y,z,u,v,w ,-我.)
* 3d档案(x,y,z,f ,-我.)
x,y,z=mgrid[-0:3:0.6,-0:3:0.6,0:3:0.3]r=sqrt(x * * 2y * * 2z * * 4)u=y * sin/(r 0.001)v=x * sin/(r 0.001)w=zero _ like(r)mlab。箭袋3d(x,y,z,u,v,w)mlab.colorbar()mlab.show()
十振作起来绘制三维动图,帮助文档上的代码执行后并没有动画效果,下面2个示例代码是查看了玛雅维的相关源码后总结的,大家也可以直接查看相关源码查看更多官方提供的示例代码。
(1)
@mlab。动画(延迟=200) #设置延时时间200msdef anim():n_mer,n _ long=6.11 dphi=pi/1000.0 phi=NP。arang(0.0,2 * pi 0.5 * dphi,dphi, d )mu=phi * n _ merx=cos(mu)*(1 cos(n _ long * mu/n _ mer)* 0.5)y=sin(mu)*(1 cos(n _ long * mu/n _ mer)* 0.5)z=sin(n _ long * mu/n _ mer)* 0.5 l=sin)标量=sin(pi *(I 1)/5)#不改变形状(形状)和尺寸(大小)的情况下用设置(设置)来更改属性值设置女士(x=x,标量=标量)yildanim()MLB。show()(2)
-=伊甸园美剧http://sfile。ydy。com=-荣誉出品本字幕仅供学习交流,严禁用于商业途径默认500毫秒延时def anim2():x,y=np.mgrid[0:3:1,0:3:1]s=MLB。surf(x,y,np.asarray(x*0.1, d ),re presentation= wire frame )fig=MLB。GCF()ms=s . MLB _ source for I in range(15):x,y=NP。mgrid[0:3:1.0/(I2)],0:3:1.0/(I2)]sc=NP。asar射线(x * x *
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。