.. _units-artist_tests:

units example code: artist_tests.py
===================================



.. plot:: /media/TOSHI/temp/numpy_scipy_matplotlib/matplotlib/matplotlib-1.1.1~rc2/doc/mpl_examples/units/artist_tests.py

::

    """
    Test unit support with each of the matplotlib primitive artist types
    
    The axes handles unit conversions and the artists keep a pointer to
    their axes parent, so you must init the artists with the axes instance
    if you want to initialize them with unit data, or else they will not
    know how to convert the units to scalars
    """
    import random
    import matplotlib.lines as lines
    import matplotlib.patches as patches
    import matplotlib.text as text
    import matplotlib.collections as collections
    import matplotlib.units as units
    
    from basic_units import cm, inch
    import numpy as np
    from matplotlib.pyplot import figure, show
    
    fig = figure()
    ax = fig.add_subplot(111)
    ax.xaxis.set_units(cm)
    ax.yaxis.set_units(cm)
    
    if 0:
        # test a line collection
        # Not supported at present.
        verts = []
        for i in range(10):
            # a random line segment in inches
            verts.append(zip(*inch*10*np.random.rand(2, random.randint(2,15))))
        lc = collections.LineCollection(verts, axes=ax)
        ax.add_collection(lc)
    
    # test a plain-ol-line
    line = lines.Line2D([0*cm, 1.5*cm], [0*cm, 2.5*cm], lw=2, color='black', axes=ax)
    ax.add_line(line)
    
    if 0:
        # test a patch
        # Not supported at present.
        rect = patches.Rectangle( (1*cm, 1*cm), width=5*cm, height=2*cm, alpha=0.2, axes=ax)
        ax.add_patch(rect)
    
    
    t = text.Text(3*cm, 2.5*cm, 'text label', ha='left', va='bottom', axes=ax)
    ax.add_artist(t)
    
    ax.set_xlim(-1*cm, 10*cm)
    ax.set_ylim(-1*cm, 10*cm)
    #ax.xaxis.set_units(inch)
    ax.grid(True)
    ax.set_title("Artists with units")
    show()
    
    

Keywords: python, matplotlib, pylab, example, codex (see :ref:`how-to-search-examples`)