matplotlibでグラフを操作しようとすると、何か面白いことが起こりました。プロット関数を使用する場合、xとy座標はエイリアシングによって変更できますが、zは変更できません。これは簡単に説明できますか? 小さな例を挙げましたが、ポイントを円柱に沿って螺旋状に動かそうとしていました。参考3D Matplotlibの動的ポイント操作
import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.mplot3d import Axes3D
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.set_xlabel("X")
ax.set_ylabel("Y")
ax.set_zlabel("Z")
radius = 8
# Cylinder
x = np.linspace(-radius, radius, 100)
z = np.linspace(0, 2, 100)
X, Z = np.meshgrid(x, z)
Y = np.sqrt(radius**2 - X**2)
ax.plot_surface(X, Y, Z, alpha=0.3, linewidth=0)
ax.plot_surface(X, (-Y), Z,alpha=0.3, linewidth=0)
X = np.array(np.zeros(1))
Y = np.array(np.zeros(1))
Z = np.array(np.zeros(1))
X[0]= radius*np.cos(np.deg2rad(0))
Y[0]= radius*np.sin(np.deg2rad(0))
Z[0]= 0.
ax.plot(X,Y,Z, 'or',markersize=3)
for i in range(0,360,5):
X[0]= radius*np.cos(np.deg2rad(i))
Y[0]= radius*np.sin(np.deg2rad(i))
Z[0]= i/140.
plt.draw()
plt.pause(0.01)
、この運動の最終目標は、三次元で、リアルタイムでセンサ入力に基づいてポイントを配置できるようにすることです。
なぜこれが起こっているのか、解決策があるのかについての洞察を持っていただきありがとうございます。 get_xdata
またはset_xdata
などの機能もz
方向では利用できませんので