docs: def make_frame(fig, ax, plot_x: np.ndarray, plot_y: np.ndarray, frame_num: int, 
                 bodies: List[str], plot_colors: Dict[str, str], markersize_tbl: Dict[str, float],
                 fname: str):
      """
      Make a series of frames of the planetary orbits that can be assembled into a movie.
      q is a Nx3B array.  t indexes time points.  3B columns are (x, y, z) for the bodies in order.
      """
      # Clear the axis
      ax.clear()
  
      ax.set_title(f'Inner Planetary Orbits in 2018')
      ax.set_xlabel('x in J2000.0 Frame; Astronomical Units (au)')
      ax.set_ylabel('y in J2000.0 Frame; Astronomical Units (au)')
  
      # Scale and tick size
      a = 2.0
      da = 1.0
      ticks = np.arange(-a, a+da, da)
  
      # Set limits and ticks
      ax.set_xlim(-a, a)
      ax.set_ylim(-a, a)
      ax.set_xticks(ticks)
      ax.set_yticks(ticks)
  
      # Plot the orbit of each body
      for k, body in enumerate(bodies[0:5]):
          ax.plot(plot_x[k], plot_y[k], label=body, color=plot_colors[body], 
                  linewidth=0, markersize = markersize_tbl[body], marker='o')    
      ax.grid()
  
      # Save this frame
      fig.savefig(f'{fname}_{frame_num:05d}.png')