code: def draw_axis_line_labels(self, axis, color, axis_line):
      if not self._p._label_axes:
          return
      axis_labels = [axis_line[0][::], axis_line[1][::]]
      axis_labels[0][axis] -= 0.3
      axis_labels[1][axis] += 0.3
      a_str = ["X", "Y", "Z"][axis]
      self.draw_text("-" + a_str, axis_labels[0], color)
      self.draw_text("+" + a_str, axis_labels[1], color)
  
imports: import pyglet.gl
  from pyglet import font
  from sympy.core import S
  from sympy.plotting.pygletplot.plot_object import PlotObject
  from sympy.plotting.pygletplot.util import billboard_matrix, dot_product, get_direction_vectors, strided_range, vec_mag, vec_sub
  from sympy.utilities.iterables import is_sequence
label_desc: Use image node_id 4 for calling the PlotAxesOrdinate obj's underlying member method code with example usage: obj.draw_axis_line_labels(axis, color, axis_line) without return types