class_docstr: A trihedron, i.e. 3 Arrow3Ds at the same point.
class_docstr_tok: ["A","trihedron",",","i.e",".","3","Arrow3Ds","at","the","same","point","."]
code: def plot(self, points, ax=None, space=None, **point_draw_kwargs):
      if space == "SE3_GROUP":
          ax_s = AX_SCALE * gs.amax(gs.abs(points[:, 3:6]))
      elif space == "SO3_GROUP":
          ax_s = AX_SCALE * gs.amax(gs.abs(points[:, :3]))
      ax_s = float(ax_s)
      bounds = (-ax_s, ax_s)
      plt.setp(
          ax,
          xlim=bounds,
          ylim=bounds,
          zlim=bounds,
          xlabel="X",
          ylabel="Y",
          zlabel="Z",
      )
      trihedrons = convert_to_trihedron(points, space=space)
      for t in trihedrons:
          t.draw(ax, **point_draw_kwargs)
  
file_path: geomstats/geomstats/visualization/special_orthogonal.py
imports: import matplotlib.pyplot
  from mpl_toolkits.mplot3d import Axes3D
  import geomstats.backend
  from geomstats.geometry.special_orthogonal import SpecialOrthogonal
label_desc: Use image node_id 3 for calling the Trihedron obj's underlying member method code with example usage: obj.plot(points, ax, space) without return types