code: def plot(self, numPoints=100):
      
      fig = plt.figure()
      ax = fig.add_subplot(111, projection='3d')
  
      # generate sphere
      phi, theta = np.meshgrid(
        np.linspace(0, pi, numPoints),
        np.linspace(0, 2 * pi, numPoints)
      )
      x = self.radius * np.sin(phi) * np.cos(theta)
      y = self.radius * np.sin(phi) * np.sin(theta)
      z = self.radius * np.cos(phi)
  
      # plot
      ax.plot_surface(x, y, z, alpha=0.2, rstride=20, cstride=10)
      ax.set_xlabel("X")
      ax.set_ylabel("Y")
      ax.set_zlabel("Z")
  
      plt.title("{}".format(self))
      return fig, ax
docs: Specific plotting method for cylinders.