title: Animate a python pyplot by moving a point plotted via scatter
body: <p>I am having trouble in producing an animation in Python. My issue is to animate a 3D point moving along a certain trajectory. I am able to do this by using the animation module and remake at every frame the plot (see first option in my script). I would like instead to move only the point position at each frame without remaking the all axes (see second option in my script). Here is my script:</p>
  
  <pre><code>import numpy as np
  import matplotlib.pyplot as plt
  import matplotlib.animation as an
  from mpl_toolkits.mplot3d import Axes3D
  
  # create the parametric curve
  t=np.arange(0, 2*np.pi, 2*np.pi/100)
  x=np.cos(t)
  y=np.sin(t)
  z=t/(2.*np.pi)
  
  # create the figure
  fig=plt.figure()
  ax=fig.gca(projection='3d')
  
  # create the first plot
  point=ax.scatter(x[0], y[0], z[0])
  line=ax.plot(x, y, z, label='parametric curve')
  ax.legend()
  ax.set_xlim([-1.5, 1.5])
  ax.set_ylim([-1.5, 1.5])
  ax.set_zlim([-1.5, 1.5])
  
  # first option - remake the plot at every frame
  def update_axes(n, x, y, z, ax):
      ax.cla()
      ax.set_xlim([-1.5, 1.5])
      ax.set_ylim([-1.5, 1.5])
      ax.set_zlim([-1.5, 1.5])
      point=ax.scatter(x[n], y[n], z[n])
      line=ax.plot(x, y, z, label='parametric curve')
      ax.legend()
      return point
  
  ani=an.FuncAnimation(fig, update_axes, 99, fargs=(x, y, z, ax))
  
  # second option - move the point position at every frame
  def update_point(n, x, y, z, point):
      point.set_3d_properties(x[n], 'x')
      point.set_3d_properties(y[n], 'y')
      point.set_3d_properties(z[n], 'z')
      return point
  
  #ani=an.FuncAnimation(fig, update_point, 99, fargs=(x, y, z, point))
  
  # make the movie file demo.mp4
  
  writer=an.writers['ffmpeg'](fps=20)
  dpi = 100
  ani.save('demo.mp4',writer=writer,dpi=dpi)
  </code></pre>
  
  <p>If I choose the second option (comment the first FuncAnimation and uncomment the second one), I obtain my point moving only in the z direction. Any suggestion on what should I do to move it also in the x and y directions?</p>