class_docstr: **Bases:** :class:`GraphicsObject <pyqtgraph.GraphicsObject>`
  
  Displays a line of infinite length.
  This line may be dragged to indicate a position in data coordinates.
  
  =============================== ===================================================
  **Signals:**
  sigDragged(self)
  sigPositionChangeFinished(self)
  sigPositionChanged(self)
  sigClicked(self, ev)
  =============================== ===================================================
docstr: =============== ==================================================================
  **Arguments:**
  pos             Position of the line. This can be a QPointF or a single value for
                  vertical/horizontal lines.
  angle           Angle of line in degrees. 0 is horizontal, 90 is vertical.
  pen             Pen to use when drawing line. Can be any arguments that are valid
                  for :func:`mkPen <pyqtgraph.mkPen>`. Default pen is transparent
                  yellow.
  hoverPen        Pen to use when the mouse cursor hovers over the line. 
                  Only used when movable=True.
  movable         If True, the line can be dragged to a new position by the user.
  bounds          Optional [min, max] bounding values. Bounds are only valid if the
                  line is vertical or horizontal.
  hoverPen        Pen to use when drawing line when hovering over it. Can be any
                  arguments that are valid for :func:`mkPen <pyqtgraph.mkPen>`.
                  Default pen is red.
  label           Text to be displayed in a label attached to the line, or
                  None to show no label (default is None). May optionally
                  include formatting strings to display the line value.
  labelOpts       A dict of keyword arguments to use when constructing the
                  text label. See :class:`InfLineLabel <pyqtgraph.graphicsItems.InfiniteLine.InfLineLabel>`.
  span            Optional tuple (min, max) giving the range over the view to draw
                  the line. For example, with a vertical line, use span=(0.5, 1)
                  to draw only on the top half of the view.
  markers         List of (marker, position, size) tuples, one per marker to display
                  on the line. See the addMarker method.
  name            Name of the item
  =============== ==================================================================
docstr_tok: ["===============","==================================================================","*","*","Arguments",":","*","*","pos","Position","of","the","line",".","This","can","be","a","QPointF","or","a","single","value","for","vertical\/horizontal","lines",".","angle","Angle","of","line","in","degrees",".","0","is","horizontal",",","90","is","vertical",".","pen","Pen","to","use","when","drawing","line",".","Can","be","any","arguments","that","are","valid","for",":","func",":","`","mkPen","<","pyqtgraph.mkPen",">","`",".","Default","pen","is","transparent","yellow",".","hoverPen","Pen","to","use","when","the","mouse","cursor","hovers","over","the","line",".","Only","used","when","movable=True",".","movable","If","True",",","the","line","can","be","dragged","to","a","new","position","by","the","user",".","bounds","Optional","[","min",",","max","]","bounding","values",".","Bounds","are","only","valid","if","the","line","is","vertical","or","horizontal",".","hoverPen","Pen","to","use","when","drawing","line","when","hovering","over","it",".","Can","be","any","arguments","that","are","valid","for",":","func",":","`","mkPen","<","pyqtgraph.mkPen",">","`",".","Default","pen","is","red",".","label","Text","to","be","displayed","in","a","label","attached","to","the","line",",","or","None","to","show","no","label","(","default","is","None",")",".","May","optionally","include","formatting","strings","to","display","the","line","value",".","labelOpts","A","dict","of","keyword","arguments","to","use","when","constructing","the","text","label",".","See",":","class",":","`","InfLineLabel","<","pyqtgraph.graphicsItems.InfiniteLine.InfLineLabel",">","`",".","span","Optional","tuple","(","min",",","max",")","giving","the","range","over","the","view","to","draw","the","line",".","For","example",",","with","a","vertical","line",",","use","span=","(","0.5",",","1",")","to","draw","only","on","the","top","half","of","the","view",".","markers","List","of","(","marker",",","position",",","size",")","tuples",",","one","per","marker","to","display","on","the","line",".","See","the","addMarker","method",".","name","Name","of","the","item","===============","=================================================================="]
code: def __init__(
      self,
      pos=None,
      angle=90,
      pen=None,
      movable=False,
      bounds=None,
      hoverPen=None,
      label=None,
      labelOpts=None,
      span=(0, 1),
      markers=None,
      name=None,
  ):
      """
      =============== ==================================================================
      **Arguments:**
      pos             Position of the line. This can be a QPointF or a single value for
                      vertical/horizontal lines.
      angle           Angle of line in degrees. 0 is horizontal, 90 is vertical.
      pen             Pen to use when drawing line. Can be any arguments that are valid
                      for :func:`mkPen <pyqtgraph.mkPen>`. Default pen is transparent
                      yellow.
      hoverPen        Pen to use when the mouse cursor hovers over the line.
                      Only used when movable=True.
      movable         If True, the line can be dragged to a new position by the user.
      bounds          Optional [min, max] bounding values. Bounds are only valid if the
                      line is vertical or horizontal.
      hoverPen        Pen to use when drawing line when hovering over it. Can be any
                      arguments that are valid for :func:`mkPen <pyqtgraph.mkPen>`.
                      Default pen is red.
      label           Text to be displayed in a label attached to the line, or
                      None to show no label (default is None). May optionally
                      include formatting strings to display the line value.
      labelOpts       A dict of keyword arguments to use when constructing the
                      text label. See :class:`InfLineLabel <pyqtgraph.graphicsItems.InfiniteLine.InfLineLabel>`.
      span            Optional tuple (min, max) giving the range over the view to draw
                      the line. For example, with a vertical line, use span=(0.5, 1)
                      to draw only on the top half of the view.
      markers         List of (marker, position, size) tuples, one per marker to display
                      on the line. See the addMarker method.
      name            Name of the item
      =============== ==================================================================
      """
      self._boundingRect = None
  
      self._name = name
  
      GraphicsObject.__init__(self)
  
      if (
          bounds is None
      ):  ## allowed value boundaries for orthogonal lines
          self.maxRange = [None, None]
      else:
          self.maxRange = bounds
      self.moving = False
      self.setMovable(movable)
      self.mouseHovering = False
      self.p = [0, 0]
      self.setAngle(angle)
  
      if pos is None:
          pos = Point(0, 0)
      self.setPos(pos)
  
      if pen is None:
          pen = (200, 200, 100)
      self.setPen(pen)
  
      if hoverPen is None:
          self.setHoverPen(color=(255, 0, 0), width=self.pen.width())
      else:
          self.setHoverPen(hoverPen)
  
      self.span = span
      self.currentPen = self.pen
  
      self.markers = []
      self._maxMarkerSize = 0
      if markers is not None:
          for m in markers:
              self.addMarker(*m)
  
      # Cache variables for managing bounds
      self._endPoints = [0, 1]  #
      self._bounds = None
      self._lastViewSize = None
  
      if label is not None:
          labelOpts = {} if labelOpts is None else labelOpts
          self.label = InfLineLabel(self, text=label, **labelOpts)
  
imports: from math import atan2, degrees
  import numpy
  from ..None import functions
  from ..Point import Point
  from ..Qt import QtCore, QtGui
  from .GraphicsItem import GraphicsItem
  from .GraphicsObject import GraphicsObject
  from .TextItem import TextItem
  from .ViewBox import ViewBox
label_desc: Use image node_id 1 to create a new InfiniteLine object from inherited base classes: GraphicsObject with example: obj = InfiniteLine(pos, angle, pen, movable, bounds, hoverPen, label, labelOpts, span, markers, name)