1
我想在python中水平旋转图形。用鼠标我只能够通过一个自由度旋转,以及能够旋转的身影,例如这是我可以在momement做:如何旋转matplotlib中所有方向的图形
这些运动只有垂直。我希望能够在各个方向旋转的身影,例如:
这将允许我把这个数字在其一侧等,但此刻我不能做到这一点,所有的我可以做它沿着一个自由度旋转。
这里是我的代码:
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()