Manipulación dinámica de puntos en 3D Matplotlib

Al tratar de manipular un gráfico en matplotlib, me encontré con algo interesante. cuando se usa la función de trazado, las coordenadas xey pueden modificarse mediante alias, sin embargo, la z no puede. ¿Se explica esto fácilmente? He incluido un pequeño ejemplo, tenga en cuenta que estaba tratando de mover el punto en una hélice a lo largo del cilindro.

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)

Como referencia, el objetivo final de este ejercicio es poder posicionar el punto en función de las entradas del sensor en tiempo real, en tres dimensiones.

¡Gracias a cualquiera que tenga una idea de por qué ocurre esto y las posibles soluciones!

Respuestas a la pregunta(1)

Su respuesta a la pregunta