Python 如何在matplotlib中全方位旋转地物
我试图在python中水平旋转一个图形。使用鼠标,我只能旋转一个自由度,也只能旋转图形,例如,此时我可以这样做: 这些运动只是垂直的。我希望能够在各个方向上旋转图形,例如: 这将允许我把图形放在它的一边,等等。但是现在我不能这样做,我所能做的就是沿着一个自由度旋转 这是我的密码:Python 如何在matplotlib中全方位旋转地物,python,matplotlib,Python,Matplotlib,我试图在python中水平旋转一个图形。使用鼠标,我只能旋转一个自由度,也只能旋转图形,例如,此时我可以这样做: 这些运动只是垂直的。我希望能够在各个方向上旋转图形,例如: 这将允许我把图形放在它的一边,等等。但是现在我不能这样做,我所能做的就是沿着一个自由度旋转 这是我的密码: from mpl_toolkits.mplot3d import Axes3D import matplotlib.pyplot as plt from mpl_toolkits.mplot3d.art3d imp
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d.art3d import Poly3DCollection
import numpy as np
import math
fig = plt.figure()
ax = fig.gca(projection='3d')
nphi,nz= 13, 101
r=1
phi = np.linspace(0,360, nphi)/180.0*np.pi
z= np.linspace(0,350,nz)
cols=[]
verts2 = []
for i in range(len(phi)-1):
cp0= r*np.cos(phi[i])
cp1= r*np.cos(phi[i+1])
sp0= r*np.sin(phi[i])
sp1= r*np.sin(phi[i+1])
for j in range(len(z)-1):
z0=z[j]
z1=z[j+1]
verts=[]
verts.append((cp0, sp0, z0))
verts.append((cp1, sp1, z0))
verts.append((cp1, sp1, z1))
verts.append((cp0, sp0, z1))
verts2.append(verts)
col=plt.cm.Blues(0.4)
cols.append(col)
poly3 = Poly3DCollection(verts2, facecolor=cols ,edgecolor = "red" )
poly3.set_alpha(0.5)
ax.add_collection3d(poly3)
ax.set_xlabel('X')
ax.set_xlim3d(-3, 3)
ax.set_ylabel('Y')
ax.set_ylim3d(-3, 3)
ax.set_zlabel('Z')
ax.set_zlim3d(0, 300)
plt.axis('off')
ax.axes.get_xaxis().set_visible(False)
ax.axes.get_yaxis().set_visible(False)
plt.show()
不幸的是,我认为你不能;从: “elev”在z平面中存储仰角阿齐姆商店 x,y平面上的方位角 这里实际上没有3个自由度,因为你只能在xy平面上旋转,而不是绕每个轴独立旋转 如果显示轴,则会更加清晰: