

.. _sphx_glr_gallery_misc_set_and_get.py:


===========
Set And Get
===========

The pyplot interface allows you to use setp and getp to set and get
object properties, as well as to do introspection on the object

set
===

To set the linestyle of a line to be dashed, you can do::

  >>> line, = plt.plot([1,2,3])
  >>> plt.setp(line, linestyle='--')

If you want to know the valid types of arguments, you can provide the
name of the property you want to set without a value::

  >>> plt.setp(line, 'linestyle')
      linestyle: [ '-' | '--' | '-.' | ':' | 'steps' | 'None' ]

If you want to see all the properties that can be set, and their
possible values, you can do::

    >>> plt.setp(line)

set operates on a single instance or a list of instances.  If you are
in query mode introspecting the possible values, only the first
instance in the sequence is used.  When actually setting values, all
the instances will be set.  e.g., suppose you have a list of two lines,
the following will make both lines thicker and red::

    >>> x = np.arange(0,1.0,0.01)
    >>> y1 = np.sin(2*np.pi*x)
    >>> y2 = np.sin(4*np.pi*x)
    >>> lines = plt.plot(x, y1, x, y2)
    >>> plt.setp(lines, linewidth=2, color='r')


get
===

get returns the value of a given attribute.  You can use get to query
the value of a single attribute::

    >>> plt.getp(line, 'linewidth')
        0.5

or all the attribute/value pairs::

    >>> plt.getp(line)
        aa = True
        alpha = 1.0
        antialiased = True
        c = b
        clip_on = True
        color = b
        ... long listing skipped ...

Aliases
=======

To reduce keystrokes in interactive mode, a number of properties
have short aliases, e.g., 'lw' for 'linewidth' and 'mec' for
'markeredgecolor'.  When calling set or get in introspection mode,
these properties will be listed as 'fullname or aliasname'.




.. image:: /gallery/misc/images/sphx_glr_set_and_get_001.png
    :align: center


.. rst-class:: sphx-glr-script-out

 Out::

    Line setters
      agg_filter: a filter function, which takes a (m, n, 3) float array and a dpi value, and returns a (m, n, 3) array 
      alpha: float (0.0 transparent through 1.0 opaque) 
      animated: bool 
      antialiased or aa: [True | False] 
      clip_box: a `~.Bbox` instance 
      clip_on: bool 
      clip_path: [(`~matplotlib.path.Path`, `~.Transform`) | `~.Patch` | None] 
      color or c: any matplotlib color 
      contains: a callable function 
      dash_capstyle: ['butt' | 'round' | 'projecting'] 
      dash_joinstyle: ['miter' | 'round' | 'bevel'] 
      dashes: sequence of on/off ink in points 
      drawstyle: ['default' | 'steps' | 'steps-pre' | 'steps-mid' | 'steps-post'] 
      figure: a `~.Figure` instance 
      fillstyle: ['full' | 'left' | 'right' | 'bottom' | 'top' | 'none'] 
      gid: an id string 
      label: object 
      linestyle or ls: ['solid' | 'dashed', 'dashdot', 'dotted' | (offset, on-off-dash-seq) | ``'-'`` | ``'--'`` | ``'-.'`` | ``':'`` | ``'None'`` | ``' '`` | ``''``]
      linewidth or lw: float value in points 
      marker: :mod:`A valid marker style <matplotlib.markers>`
      markeredgecolor or mec: any matplotlib color 
      markeredgewidth or mew: float value in points 
      markerfacecolor or mfc: any matplotlib color 
      markerfacecoloralt or mfcalt: any matplotlib color 
      markersize or ms: float 
      markevery: [None | int | length-2 tuple of int | slice | list/array of int | float | length-2 tuple of float]
      path_effects: `~.AbstractPathEffect` 
      picker: float distance in points or callable pick function ``fn(artist, event)`` 
      pickradius: float distance in points
      rasterized: bool or None 
      sketch_params: (scale: float, length: float, randomness: float) 
      snap: bool or None 
      solid_capstyle: ['butt' | 'round' |  'projecting'] 
      solid_joinstyle: ['miter' | 'round' | 'bevel'] 
      transform: a :class:`matplotlib.transforms.Transform` instance 
      url: a url string 
      visible: bool 
      xdata: 1D array 
      ydata: 1D array 
      zorder: float 
    Line getters
        agg_filter = None
        alpha = None
        animated = False
        antialiased or aa = True
        children = []
        clip_box = TransformedBbox(Bbox([[0.0, 0.0], [1.0, 1.0]]), Co...
        clip_on = True
        clip_path = None
        color or c = r
        contains = None
        dash_capstyle = butt
        dash_joinstyle = round
        data = (array([ 0.  ,  0.01,  0.02,  0.03,  0.04,  0.05, ...
        drawstyle = default
        figure = Figure(640x480)
        fillstyle = full
        gid = None
        label = _line0
        linestyle or ls = --
        linewidth or lw = 2.0
        marker = None
        markeredgecolor or mec = r
        markeredgewidth or mew = 1.0
        markerfacecolor or mfc = r
        markerfacecoloralt or mfcalt = none
        markersize or ms = 6.0
        markevery = None
        path = Path(array([[  0.00000000e+00,   0.00000000e+00], ...
        path_effects = []
        picker = None
        pickradius = 5
        rasterized = None
        sketch_params = None
        snap = None
        solid_capstyle = projecting
        solid_joinstyle = round
        transform = CompositeGenericTransform(TransformWrapper(Blended...
        transformed_clip_path_and_affine = (None, None)
        url = None
        visible = True
        xdata = [ 0.    0.01  0.02  0.03  0.04  0.05]...
        xydata = [[ 0.          0.        ]  [ 0.01        0.062790...
        ydata = [ 0.          0.06279052  0.12533323  0.18738131  ...
        zorder = 2
    Rectangle setters
      agg_filter: a filter function, which takes a (m, n, 3) float array and a dpi value, and returns a (m, n, 3) array 
      alpha: float or None 
      animated: bool 
      antialiased or aa: [True | False]  or None for default 
      capstyle: ['butt' | 'round' | 'projecting'] 
      clip_box: a `~.Bbox` instance 
      clip_on: bool 
      clip_path: [(`~matplotlib.path.Path`, `~.Transform`) | `~.Patch` | None] 
      color: matplotlib color spec
      contains: a callable function 
      edgecolor or ec: mpl color spec, None, 'none', or 'auto' 
      facecolor or fc: mpl color spec, or None for default, or 'none' for no color 
      figure: a `~.Figure` instance 
      fill: [True | False] 
      gid: an id string 
      hatch: ['/' | '\\' | '|' | '-' | '+' | 'x' | 'o' | 'O' | '.' | '*'] 
      height: float 
      joinstyle: ['miter' | 'round' | 'bevel'] 
      label: object 
      linestyle or ls: ['solid' | 'dashed', 'dashdot', 'dotted' | (offset, on-off-dash-seq) | ``'-'`` | ``'--'`` | ``'-.'`` | ``':'`` | ``'None'`` | ``' '`` | ``''``]
      linewidth or lw: float or None for default 
      path_effects: `~.AbstractPathEffect` 
      picker: [None | bool | float | callable] 
      rasterized: bool or None 
      sketch_params: (scale: float, length: float, randomness: float) 
      snap: bool or None 
      transform: `~.Transform` 
      url: a url string 
      visible: bool 
      width: float 
      x: float 
      xy: 2-item sequence 
      y: float 
      zorder: float 
    Rectangle getters
        aa = True
        agg_filter = None
        alpha = None
        animated = False
        antialiased or aa = True
        bbox = Bbox(x0=0.0, y0=0.0, x1=1.0, y1=1.0)
        capstyle = butt
        children = []
        clip_box = None
        clip_on = True
        clip_path = None
        contains = None
        data_transform = BboxTransformTo(TransformedBbox(Bbox([[0.125, 0.11...
        ec = (0.0, 0.0, 0.0, 0.0)
        edgecolor or ec = (0.0, 0.0, 0.0, 0.0)
        extents = Bbox(x0=80.0, y0=52.8, x1=576.0, y1=422.4)
        facecolor or fc = (1.0, 1.0, 1.0, 1)
        fc = (1.0, 1.0, 1.0, 1)
        figure = Figure(640x480)
        fill = True
        gid = None
        hatch = None
        height = 1.0
        joinstyle = miter
        label = 
        linestyle or ls = solid
        linewidth or lw = 0.0
        ls = solid
        lw = 0.0
        patch_transform = CompositeGenericTransform(BboxTransformTo(Bbox([[0...
        path = Path(array([[ 0.,  0.],        [ 1.,  0.],        ...
        path_effects = []
        picker = None
        rasterized = None
        sketch_params = None
        snap = None
        transform = CompositeGenericTransform(CompositeGenericTransfor...
        transformed_clip_path_and_affine = (None, None)
        url = None
        verts = [[  80.    52.8]  [ 576.    52.8]  [ 576.   422.4]...
        visible = True
        width = 1.0
        window_extent = Bbox(x0=80.0, y0=52.8, x1=576.0, y1=422.4)
        x = 0.0
        xy = (0.0, 0.0)
        y = 0.0
        zorder = 1
    Text setters
      agg_filter: a filter function, which takes a (m, n, 3) float array and a dpi value, and returns a (m, n, 3) array 
      alpha: float (0.0 transparent through 1.0 opaque) 
      animated: bool 
      backgroundcolor: any matplotlib color 
      bbox: FancyBboxPatch prop dict 
      clip_box: a :class:`matplotlib.transforms.Bbox` instance 
      clip_on: [True | False] 
      clip_path: [ (:class:`~matplotlib.path.Path`, :class:`~matplotlib.transforms.Transform`) | :class:`~matplotlib.patches.Patch` | None ] 
      color: any matplotlib color 
      contains: a callable function 
      family or fontfamily or fontname or name: [FONTNAME | 'serif' | 'sans-serif' | 'cursive' | 'fantasy' | 'monospace' ] 
      figure: a `~.Figure` instance 
      fontproperties or font_properties: a :class:`matplotlib.font_manager.FontProperties` instance 
      gid: an id string 
      horizontalalignment or ha: [ 'center' | 'right' | 'left' ] 
      label: object 
      linespacing: float (multiple of font size) 
      multialignment or ma: ['left' | 'right' | 'center' ] 
      path_effects: `~.AbstractPathEffect` 
      picker: [None | bool | float | callable] 
      position: (x,y) 
      rasterized: bool or None 
      rotation: [ angle in degrees | 'vertical' | 'horizontal' ] 
      rotation_mode: [ None | "default" | "anchor" ]
      size or fontsize: [size in points | 'xx-small' | 'x-small' | 'small' | 'medium' | 'large' | 'x-large' | 'xx-large' ] 
      sketch_params: (scale: float, length: float, randomness: float) 
      snap: bool or None 
      stretch or fontstretch: [a numeric value in range 0-1000 | 'ultra-condensed' | 'extra-condensed' | 'condensed' | 'semi-condensed' | 'normal' | 'semi-expanded' | 'expanded' | 'extra-expanded' | 'ultra-expanded' ] 
      style or fontstyle: [ 'normal' | 'italic' | 'oblique'] 
      text: string or anything printable with '%s' conversion. 
      transform: `~.Transform` 
      url: a url string 
      usetex: bool or None 
      variant or fontvariant: [ 'normal' | 'small-caps' ] 
      verticalalignment or va: [ 'center' | 'top' | 'bottom' | 'baseline' ] 
      visible: bool 
      weight or fontweight: [a numeric value in range 0-1000 | 'ultralight' | 'light' | 'normal' | 'regular' | 'book' | 'medium' | 'roman' | 'semibold' | 'demibold' | 'demi' | 'bold' | 'heavy' | 'extra bold' | 'black' ] 
      wrap: bool
      x: float 
      y: float 
      zorder: float 
    Text getters
        agg_filter = None
        alpha = None
        animated = False
        bbox_patch = None
        children = []
        clip_box = None
        clip_on = True
        clip_path = None
        color = k
        contains = None
        family or fontfamily or fontname or name = [u'sans-serif']
        figure = Figure(640x480)
        fontproperties or font_properties = :family=sans-serif:style=normal:variant=normal:wei...
        gid = None
        horizontalalignment or ha = center
        label = 
        name or fontname = DejaVu Sans
        path_effects = []
        picker = None
        position = (0.5, 1.0)
        rasterized = None
        rotation = 0.0
        rotation_mode = None
        size or fontsize = 12.0
        sketch_params = None
        snap = None
        stretch or fontstretch = normal
        style or fontstyle = normal
        text = Hi mom
        transform = CompositeGenericTransform(BboxTransformTo(Transfor...
        transformed_clip_path_and_affine = (None, None)
        unitless_position = (0.5, 1.0)
        url = None
        usetex = False
        variant or fontvariant = normal
        verticalalignment or va = baseline
        visible = True
        weight or fontweight = normal
        wrap = False
        zorder = 3




|


.. code-block:: python


    from __future__ import print_function

    import matplotlib.pyplot as plt
    import numpy as np


    x = np.arange(0, 1.0, 0.01)
    y1 = np.sin(2*np.pi*x)
    y2 = np.sin(4*np.pi*x)
    lines = plt.plot(x, y1, x, y2)
    l1, l2 = lines
    plt.setp(lines, linestyle='--')       # set both to dashed
    plt.setp(l1, linewidth=2, color='r')  # line1 is thick and red
    plt.setp(l2, linewidth=1, color='g')  # line2 is thinner and green


    print('Line setters')
    plt.setp(l1)
    print('Line getters')
    plt.getp(l1)

    print('Rectangle setters')
    plt.setp(plt.gca().patch)
    print('Rectangle getters')
    plt.getp(plt.gca().patch)

    t = plt.title('Hi mom')
    print('Text setters')
    plt.setp(t)
    print('Text getters')
    plt.getp(t)

    plt.show()

**Total running time of the script:** ( 0 minutes  0.087 seconds)



.. only :: html

 .. container:: sphx-glr-footer


  .. container:: sphx-glr-download

     :download:`Download Python source code: set_and_get.py <set_and_get.py>`



  .. container:: sphx-glr-download

     :download:`Download Jupyter notebook: set_and_get.ipynb <set_and_get.ipynb>`


.. only:: html

 .. rst-class:: sphx-glr-signature

    `Gallery generated by Sphinx-Gallery <https://sphinx-gallery.readthedocs.io>`_
