class_docstr: GraphicsItem showing a single plot axis with ticks, values, and label.
  Can be configured to fit on any side of a plot, 
  Can automatically synchronize its displayed scale with ViewBox items.
  Ticks can be extended to draw a grid.
  If maxTickLength is negative, ticks point into the plot.
docstr: =============== ===============================================================
  **Arguments:**
  orientation     one of 'left', 'right', 'top', or 'bottom'
  maxTickLength   (px) maximum length of ticks to draw. Negative values draw
                  into the plot, positive values draw outward.
  linkView        (ViewBox) causes the range of values displayed in the axis
                  to be linked to the visible range of a ViewBox.
  showValues      (bool) Whether to display values adjacent to ticks
  pen             (QPen) Pen used when drawing axis and (by default) ticks
  textPen         (QPen) Pen used when drawing tick labels.
  tickPen         (QPen) Pen used when drawing ticks.
  text            The text (excluding units) to display on the label for this
                  axis.
  units           The units for this axis. Units should generally be given
                  without any scaling prefix (eg, 'V' instead of 'mV'). The
                  scaling prefix will be automatically prepended based on the
                  range of data displayed.
  args            All extra keyword arguments become CSS style options for
                  the <span> tag which will surround the axis label and units.
  =============== ===============================================================
docstr_tok: ["===============","===============================================================","*","*","Arguments",":","*","*","orientation","one","of","'left","'",",","'right","'",",","'top","'",",","or","'bottom'","maxTickLength","(","px",")","maximum","length","of","ticks","to","draw",".","Negative","values","draw","into","the","plot",",","positive","values","draw","outward",".","linkView","(","ViewBox",")","causes","the","range","of","values","displayed","in","the","axis","to","be","linked","to","the","visible","range","of","a","ViewBox",".","showValues","(","bool",")","Whether","to","display","values","adjacent","to","ticks","pen","(","QPen",")","Pen","used","when","drawing","axis","and","(","by","default",")","ticks","textPen","(","QPen",")","Pen","used","when","drawing","tick","labels",".","tickPen","(","QPen",")","Pen","used","when","drawing","ticks",".","text","The","text","(","excluding","units",")","to","display","on","the","label","for","this","axis",".","units","The","units","for","this","axis",".","Units","should","generally","be","given","without","any","scaling","prefix","(","eg",",","'","V","'","instead","of","'mV","'",")",".","The","scaling","prefix","will","be","automatically","prepended","based","on","the","range","of","data","displayed",".","args","All","extra","keyword","arguments","become","CSS","style","options","for","the","<","span",">","tag","which","will","surround","the","axis","label","and","units",".","===============","==============================================================="]
code: def __init__(
      self,
      orientation,
      pen=None,
      textPen=None,
      tickPen=None,
      linkView=None,
      parent=None,
      maxTickLength=-5,
      showValues=True,
      text="",
      units="",
      unitPrefix="",
      **args,
  ):
      """
      =============== ===============================================================
      **Arguments:**
      orientation     one of 'left', 'right', 'top', or 'bottom'
      maxTickLength   (px) maximum length of ticks to draw. Negative values draw
                      into the plot, positive values draw outward.
      linkView        (ViewBox) causes the range of values displayed in the axis
                      to be linked to the visible range of a ViewBox.
      showValues      (bool) Whether to display values adjacent to ticks
      pen             (QPen) Pen used when drawing axis and (by default) ticks
      textPen         (QPen) Pen used when drawing tick labels.
      tickPen         (QPen) Pen used when drawing ticks.
      text            The text (excluding units) to display on the label for this
                      axis.
      units           The units for this axis. Units should generally be given
                      without any scaling prefix (eg, 'V' instead of 'mV'). The
                      scaling prefix will be automatically prepended based on the
                      range of data displayed.
      args            All extra keyword arguments become CSS style options for
                      the <span> tag which will surround the axis label and units.
      =============== ===============================================================
      """
  
      GraphicsWidget.__init__(self, parent)
      self.label = QtWidgets.QGraphicsTextItem(self)
      self.picture = None
      self.orientation = orientation
      if orientation not in ["left", "right", "top", "bottom"]:
          raise Exception(
              "Orientation argument must be one of 'left', 'right', 'top', or 'bottom'."
          )
      if orientation in ["left", "right"]:
          self.label.setRotation(-90)
          hide_overlapping_labels = False  # allow labels on vertical axis to extend above and below the length of the axis
      else:
          hide_overlapping_labels = True  # stop labels on horizontal axis from overlapping so vertical axis labels have room
  
      self.style = {
          "tickTextOffset": [
              5,
              2,
          ],  ## (horizontal, vertical) spacing between text and axis
          "tickTextWidth": 30,  ## space reserved for tick text
          "tickTextHeight": 18,
          "autoExpandTextSpace": True,  ## automatically expand text space if needed
          "autoReduceTextSpace": True,
          "hideOverlappingLabels": hide_overlapping_labels,
          "tickFont": None,
          "stopAxisAtTick": (
              False,
              False,
          ),  ## whether axis is drawn to edge of box or to last tick
          "textFillLimits": [  ## how much of the axis to fill up with tick text, maximally.
              (0, 0.8),  ## never fill more than 80% of the axis
              (
                  2,
                  0.6,
              ),  ## If we already have 2 ticks with text, fill no more than 60% of the axis
              (
                  4,
                  0.4,
              ),  ## If we already have 4 ticks with text, fill no more than 40% of the axis
              (
                  6,
                  0.2,
              ),  ## If we already have 6 ticks with text, fill no more than 20% of the axis
          ],
          "showValues": showValues,
          "tickLength": maxTickLength,
          "maxTickLevel": 2,
          "maxTextLevel": 2,
          "tickAlpha": None,  ## If not none, use this alpha for all ticks.
      }
  
      self.textWidth = (
          30  ## Keeps track of maximum width / height of tick text
      )
      self.textHeight = 18
  
      # If the user specifies a width / height, remember that setting
      # indefinitely.
      self.fixedWidth = None
      self.fixedHeight = None
  
      self.labelText = text
      self.labelUnits = units
      self.labelUnitPrefix = unitPrefix
      self.labelStyle = args
      self.logMode = False
  
      self._tickDensity = 1.0  # used to adjust scale the number of automatically generated ticks
      self._tickLevels = None  # used to override the automatic ticking system with explicit ticks
      self._tickSpacing = (
          None  # used to override default tickSpacing method
      )
      self.scale = 1.0
      self.autoSIPrefix = True
      self.autoSIPrefixScale = 1.0
  
      self.showLabel(False)
  
      self.setRange(0, 1)
  
      if pen is None:
          self.setPen()
      else:
          self.setPen(pen)
  
      if textPen is None:
          self.setTextPen()
      else:
          self.setTextPen(textPen)
  
      if tickPen is None:
          self.setTickPen()
      else:
          self.setTickPen(tickPen)
  
      self._linkedView = None
      if linkView is not None:
          self._linkToView_internal(linkView)
  
      self.grid = False
  
imports: import weakref
  from math import ceil, floor, isfinite, log10, sqrt, frexp, floor
  import numpy
  from ..None import debug
  from ..None import functions
  from ..None import getConfigOption
  from ..Point import Point
  from ..Qt import QtCore, QtGui, QtWidgets
  from .GraphicsWidget import GraphicsWidget
label_desc: Use image node_id 1 to create a new AxisItem object from inherited base classes: GraphicsWidget with example: obj = AxisItem(orientation, pen, textPen, tickPen, linkView, parent, maxTickLength, showValues, text, units, unitPrefix)