.. _pyplots-text_layout:

pyplots example code: text_layout.py
====================================

[`source code <text_layout.py>`_]

::

    import matplotlib.pyplot as plt
    import matplotlib.patches as patches
    
    # build a rectangle in axes coords
    left, width = .25, .5
    bottom, height = .25, .5
    right = left + width
    top = bottom + height
    
    fig = plt.figure()
    ax = fig.add_axes([0,0,1,1])
    
    # axes coordinates are 0,0 is bottom left and 1,1 is upper right
    p = patches.Rectangle(
        (left, bottom), width, height,
        fill=False, transform=ax.transAxes, clip_on=False
        )
    
    ax.add_patch(p)
    
    ax.text(left, bottom, 'left top',
            horizontalalignment='left',
            verticalalignment='top',
            transform=ax.transAxes)
    
    ax.text(left, bottom, 'left bottom',
            horizontalalignment='left',
            verticalalignment='bottom',
            transform=ax.transAxes)
    
    ax.text(right, top, 'right bottom',
            horizontalalignment='right',
            verticalalignment='bottom',
            transform=ax.transAxes)
    
    ax.text(right, top, 'right top',
            horizontalalignment='right',
            verticalalignment='top',
            transform=ax.transAxes)
    
    ax.text(right, bottom, 'center top',
            horizontalalignment='center',
            verticalalignment='top',
            transform=ax.transAxes)
    
    ax.text(left, 0.5*(bottom+top), 'right center',
            horizontalalignment='right',
            verticalalignment='center',
            rotation='vertical',
            transform=ax.transAxes)
    
    ax.text(left, 0.5*(bottom+top), 'left center',
            horizontalalignment='left',
            verticalalignment='center',
            rotation='vertical',
            transform=ax.transAxes)
    
    ax.text(0.5*(left+right), 0.5*(bottom+top), 'middle',
            horizontalalignment='center',
            verticalalignment='center',
            fontsize=20, color='red',
            transform=ax.transAxes)
    
    ax.text(right, 0.5*(bottom+top), 'centered',
            horizontalalignment='center',
            verticalalignment='center',
            rotation='vertical',
            transform=ax.transAxes)
    
    ax.text(left, top, 'rotated\nwith newlines',
            horizontalalignment='center',
            verticalalignment='center',
            rotation=45,
            transform=ax.transAxes)
    
    ax.set_axis_off()
    plt.show()
    

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