class_docstr: ColorMap(pos, color, mapping=ColorMap.CLIP)
  
  ColorMap stores a mapping of specific data values to colors, for example:
  
      | 0.0 → black
      | 0.2 → red
      | 0.6 → yellow
      | 1.0 → white
  
  The colors for intermediate values are determined by interpolating between
  the two nearest colors in RGB color space.
  
  A ColorMap object provides access to the interpolated colors by indexing with a float value:
  ``cm[0.5]`` returns a QColor corresponding to the center of ColorMap `cm`.
docstr: Returns a QPen that draws according to the color map based on vertical or horizontal position.
  
  It is recommended to store and reuse this gradient pen instead of regenerating it repeatedly.
  
  
  Parameters
  ----------
  span : tuple of float
      Span of the data values covered by the gradient:
  
        - Color map value 0.0 will appear at `min`.
        - Color map value 1.0 will appear at `max`.
  
      Default is (0., 1.)
  orientation : str, default 'vertical'
      Orientation of the gradient:
  
        - 'vertical' creates a vertical gradient, where `span` corresponds to the `y` coordinate.
        - 'horizontal' creates a horizontal gradient, where `span` corresponds to the `x` coordinate.
  
  width : int or float
      Width of the pen in pixels on screen.
docstr_tok: ["Returns","a","QPen","that","draws","according","to","the","color","map","based","on","vertical","or","horizontal","position",".","It","is","recommended","to","store","and","reuse","this","gradient","pen","instead","of","regenerating","it","repeatedly",".","Parameters","--","--","--","--","--","span",":","tuple","of","float","Span","of","the","data","values","covered","by","the","gradient",":","-","Color","map","value","0.0","will","appear","at","`","min","`",".","-","Color","map","value","1.0","will","appear","at","`","max","`",".","Default","is","(","0.",",","1",".",")","orientation",":","str",",","default","'vertical'","Orientation","of","the","gradient",":","-","'vertical","'","creates","a","vertical","gradient",",","where","`","span","`","corresponds","to","the","`","y","`","coordinate",".","-","'horizontal","'","creates","a","horizontal","gradient",",","where","`","span","`","corresponds","to","the","`","x","`","coordinate",".","width",":","int","or","float","Width","of","the","pen","in","pixels","on","screen","."]
code: def getPen(self, span=(0.0, 1.0), orientation="vertical", width=1.0):
      """
      Returns a QPen that draws according to the color map based on vertical or horizontal position.
  
      It is recommended to store and reuse this gradient pen instead of regenerating it repeatedly.
  
  
      Parameters
      ----------
      span : tuple of float
          Span of the data values covered by the gradient:
  
            - Color map value 0.0 will appear at `min`.
            - Color map value 1.0 will appear at `max`.
  
          Default is (0., 1.)
      orientation : str, default 'vertical'
          Orientation of the gradient:
  
            - 'vertical' creates a vertical gradient, where `span` corresponds to the `y` coordinate.
            - 'horizontal' creates a horizontal gradient, where `span` corresponds to the `x` coordinate.
  
      width : int or float
          Width of the pen in pixels on screen.
      """
      brush = self.getBrush(span=span, orientation=orientation)
      pen = QtGui.QPen(brush, width)
      pen.setCosmetic(True)
      return pen
  
imports: from collections.abc import Callable, Sequence
  from os import listdir, path
  import numpy
  from .functions import clip_array, clip_scalar, colorDistance, eq, mkColor
  from .Qt import QtCore, QtGui
label_desc: Use image node_id 15 for calling the ColorMap obj's underlying member method code with example usage: obj.getPen(span, orientation, width) and returns: pen