栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何在matplotlib中旋转3D表面

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在matplotlib中旋转3D表面

在我的评论之后:

import mayavi.mlab as mlabimport numpy as npx,y = np.mgrid[-1:1:0.001, -1:1:0.001]z = x**2+y**2s = mlab.mesh(x, y, z)alpha = 30  # degreesmlab.view(azimuth=0, elevation=90, roll=-90+alpha)mlab.show()

或遵循@Tamas答案:

#parabaloidimport numpy as npfrom matplotlib import pyplot as pltfrom mpl_toolkits.mplot3d import Axes3Dfrom math import sin, cos, piimport matplotlib.cm as cmfig = plt.figure()ax = fig.add_subplot(111, projection='3d')#creating gridy = np.linspace(-1,1,200)x = np.linspace(-1,1,200)x,y = np.meshgrid(x,y)#set z valuesz0 = x**2+y**2# rotate the samples by pi / 4 radians around ya = pi / 4t = np.transpose(np.array([x,y,z0]), (1,2,0))m = [[cos(a), 0, sin(a)],[0,1,0],[-sin(a), 0, cos(a)]]x,y,z = np.transpose(np.dot(t, m), (2,0,1))# or `np.dot(t, m)` instead `t @ m`#label axesax.set_xlabel('x')ax.set_ylabel('y')ax.set_zlabel('z')#plot figureax.plot_surface(x,y,z,linewidth=0, antialiased=False, shade = True, alpha = 0.5, facecolors=cm.viridis(z0))plt.show()



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/626025.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号