python三维图视角旋转_在python-matplotlib-Jupyter Noteb中交互式旋转三维绘图

我想知道怎样才能像this视频中描述的那样交互地旋转一个3D图(如果你决定从上面或下面,或者从右边或左边)。我可以在spyder或jupyter笔记本中生成一个3D图,但之后它仍然是静态的,我无法与之交互并旋转/更改视点的角度。

代码如下:from mpl_toolkits.mplot3d import Axes3D

import matplotlib.pyplot as plt

from matplotlib import cm

from matplotlib.ticker import LinearLocator, FormatStrFormatter

import numpy as np

fig = plt.figure()

ax = fig.gca(projection='3d')

scale = 8

# Make data.

X = np.arange(-scale, scale, 0.25)

Y = np.arange(-scale, scale, 0.25)

X, Y = np.meshgrid(X, Y)

Z = X**2 + Y**2

# Plot the surface.

surf = ax.plot_surface(X, Y, Z, cmap=cm.coolwarm,

linewidth=0, antialiased=False)

# Customize the z axis.

ax.set_zlim(0, 100)

ax.zaxis.set_major_locator(LinearLocator(10))

ax.zaxis.set_major_formatter(FormatStrFormatter('%.02f'))

# rotate the axes and update

for angle in range(0, 360):

ax.view_init(30, 40)

# Add a color bar which maps values to colors.

fig.colorbar(surf, shrink=0.5, aspect=5)

plt.show()

非常感谢你提前!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在三维坐标绕指定轴线旋转二维图片,您需要使用以下步骤: 1. 加载您要旋转的二维图片,并将其转换为numpy数组。 2. 定义旋转角度和旋转轴线。旋转轴线可以是X轴、Y轴或Z轴。 3. 使用scipy库旋转函数将二维图片旋转到所需角度。 4. 将旋转后的二维图片转换回图像格式,并将其显示在三维坐标系。 以下是一个简单的示例代码,可帮助您更好地理解该过程: ```python import numpy as np import scipy.ndimage as ndimage import matplotlib.pyplot as plt from mpl_toolkits.mplot3d.art3d import Poly3DCollection # 加载要旋转的二维图片 img = plt.imread("image.png") # 将图片转换为numpy数组 img_array = np.array(img) # 定义旋转角度和旋转轴线 angle = 45 axis = (1,0,0) # 绕X轴旋转45度 # 使用scipy库旋转函数将二维图片旋转到所需角度 rotated_img_array = ndimage.rotate(img_array, angle, axes=axis) # 将旋转后的二维图片转换回图像格式 rotated_img = plt.imshow(rotated_img_array) # 创建一个三维坐标系 fig = plt.figure() ax = fig.add_subplot(111, projection='3d') # 将旋转后的二维图片显示在三维坐标系 x, y = np.meshgrid(np.linspace(0, 1, rotated_img_array.shape[1]), np.linspace(0, 1, rotated_img_array.shape[0])) z = np.zeros_like(x) ax.plot_surface(x, y, z, facecolors=rotated_img_array) # 显示三维坐标系旋转后的二维图片 plt.show() ``` 在此示例,我们使用了scipy库的ndimage.rotate()函数来旋转图像。该函数需要三个参数:要旋转的数组、旋转角度和旋转轴线。我们还使用了matplotlib3D图形来显示旋转后的二维图片。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值