Sophie

Sophie

distrib > Fedora > 18 > i386 > by-pkgid > bf21b4394f4d7fa09e3626145d3315e0 > files > 301

python-matplotlib-doc-1.2.0-14.fc18.i686.rpm

.. _pylab_examples-barb_demo:

pylab_examples example code: barb_demo.py
=========================================



.. plot:: /builddir/build/BUILD/matplotlib-1.2.0/doc/mpl_examples/pylab_examples/barb_demo.py

::

    '''
    Demonstration of wind barb plots
    '''
    import matplotlib.pyplot as plt
    import numpy as np
    
    x = np.linspace(-5, 5, 5)
    X,Y = np.meshgrid(x, x)
    U, V = 12*X, 12*Y
    
    data = [(-1.5, .5, -6, -6),
            (1, -1, -46, 46),
            (-3, -1, 11, -11),
            (1, 1.5, 80, 80),
            (0.5, 0.25, 25, 15),
            (-1.5, -0.5, -5, 40)]
    
    data = np.array(data, dtype=[('x', np.float32), ('y', np.float32),
        ('u', np.float32), ('v', np.float32)])
    
    #Default parameters, uniform grid
    ax = plt.subplot(2,2,1)
    ax.barbs(X, Y, U, V)
    
    #Arbitrary set of vectors, make them longer and change the pivot point
    #(point around which they're rotated) to be the middle
    ax = plt.subplot(2,2,2)
    ax.barbs(data['x'], data['y'], data['u'], data['v'], length=8, pivot='middle')
    
    #Showing colormapping with uniform grid.  Fill the circle for an empty barb,
    #don't round the values, and change some of the size parameters
    ax = plt.subplot(2,2,3)
    ax.barbs(X, Y, U, V, np.sqrt(U*U + V*V), fill_empty=True, rounding=False,
        sizes=dict(emptybarb=0.25, spacing=0.2, height=0.3))
    
    #Change colors as well as the increments for parts of the barbs
    ax = plt.subplot(2,2,4)
    ax.barbs(data['x'], data['y'], data['u'], data['v'], flagcolor='r',
        barbcolor=['b','g'], barb_increments=dict(half=10, full=20, flag=100),
        flip_barb=True)
    
    #Masked arrays are also supported
    masked_u = np.ma.masked_array(data['u'])
    masked_u[4] = 1000 #Bad value that should not be plotted when masked
    masked_u[4] = np.ma.masked
    
    #Identical plot to panel 2 in the first figure, but with the point at
    #(0.5, 0.25) missing (masked)
    fig2 = plt.figure()
    ax = fig2.add_subplot(1, 1, 1)
    ax.barbs(data['x'], data['y'], masked_u, data['v'], length=8, pivot='middle')
    
    plt.show()
    

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