.. _pylab_examples-annotation_demo3:

pylab_examples example code: annotation_demo3.py
================================================



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

::

    import matplotlib.pyplot as plt
    
    fig = plt.figure(1)
    fig.clf()
    
    ax1 = plt.subplot(121)
    ax2 = plt.subplot(122)
    
    bbox_args = dict(boxstyle="round", fc="0.8")
    arrow_args = dict(arrowstyle="->")
    
    ax1.annotate('figure fraction : 0, 0', xy=(0, 0),  xycoords='figure fraction',
                 xytext=(20, 20), textcoords='offset points',
                 ha="left", va="bottom",
                 bbox=bbox_args,
                 arrowprops=arrow_args
                 )
    
    ax1.annotate('figure fraction : 1, 1', xy=(1, 1),  xycoords='figure fraction',
                 xytext=(-20, -20), textcoords='offset points',
                 ha="right", va="top",
                 bbox=bbox_args,
                 arrowprops=arrow_args
                 )
    
    ax1.annotate('axes fraction : 0, 0', xy=(0, 0),  xycoords='axes fraction',
                 xytext=(20, 20), textcoords='offset points',
                 ha="left", va="bottom",
                 bbox=bbox_args,
                 arrowprops=arrow_args
                 )
    
    ax1.annotate('axes fraction : 1, 1', xy=(1, 1),  xycoords='axes fraction',
                 xytext=(-20, -20), textcoords='offset points',
                 ha="right", va="top",
                 bbox=bbox_args,
                 arrowprops=arrow_args
                 )
    
    
    an1 = ax1.annotate('Drag me 1', xy=(.5, .7),  xycoords='data',
                       #xytext=(.5, .7), textcoords='data',
                       ha="center", va="center",
                       bbox=bbox_args,
                       #arrowprops=arrow_args
                       )
    
    an2 = ax1.annotate('Drag me 2', xy=(.5, .5),  xycoords=an1,
                       xytext=(.5, .3), textcoords='axes fraction',
                       ha="center", va="center",
                       bbox=bbox_args,
                       arrowprops=dict(patchB=an1.get_bbox_patch(),
                                       connectionstyle="arc3,rad=0.2",
                                       **arrow_args)
                       )
    
    an3 = ax1.annotate('', xy=(.5, .5),  xycoords=an2,
                       xytext=(.5, .5),  textcoords=an1,
                       ha="center", va="center",
                       bbox=bbox_args,
                       arrowprops=dict(patchA=an1.get_bbox_patch(),
                                       patchB=an2.get_bbox_patch(),
                                       connectionstyle="arc3,rad=0.2",
                                       **arrow_args)
                       )
    
    
    
    t = ax2.annotate('xy=(0, 1)\nxycoords=("data", "axes fraction")',
                     xy=(0, 1),  xycoords=("data", 'axes fraction'),
                     xytext=(0, -20), textcoords='offset points',
                     ha="center", va="top",
                     bbox=bbox_args,
                     arrowprops=arrow_args
                     )
    
    from matplotlib.text import OffsetFrom
    
    ax2.annotate('xy=(0.5, 0)\nxycoords=artist',
                 xy=(0.5, 0.),  xycoords=t,
                 xytext=(0, -20), textcoords='offset points',
                 ha="center", va="top",
                 bbox=bbox_args,
                 arrowprops=arrow_args
                 )
    
    ax2.annotate('xy=(0.8, 0.5)\nxycoords=ax1.transData',
                 xy=(0.8, 0.5),  xycoords=ax1.transData,
                 xytext=(10, 10), textcoords=OffsetFrom(ax2.bbox, (0, 0), "points"),
                 ha="left", va="bottom",
                 bbox=bbox_args,
                 arrowprops=arrow_args
                 )
    
    ax2.set_xlim(-2, 2)
    ax2.set_ylim(-2, 2)
    
    an1.draggable()
    an2.draggable()
    
    plt.show()
    

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