From: <lee...@us...> - 2010-02-26 00:31:49
|
Revision: 8158 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8158&view=rev Author: leejjoon Date: 2010-02-26 00:28:14 +0000 (Fri, 26 Feb 2010) Log Message: ----------- add annotation_demo3.py Modified Paths: -------------- trunk/matplotlib/CHANGELOG Added Paths: ----------- trunk/matplotlib/examples/pylab_examples/annotation_demo3.py Modified: trunk/matplotlib/CHANGELOG =================================================================== --- trunk/matplotlib/CHANGELOG 2010-02-26 00:28:07 UTC (rev 8157) +++ trunk/matplotlib/CHANGELOG 2010-02-26 00:28:14 UTC (rev 8158) @@ -1,3 +1,5 @@ +2010-02-25 add annotation_demo3.py that demonstrates new functionality. -JJL + 2010-02-25 refactor Annotation to support arbitrary Transform as xycoords or textcoords. Also, if a tuple of two coordinates is provided, they are interpreted as coordinates for each x and y position. Added: trunk/matplotlib/examples/pylab_examples/annotation_demo3.py =================================================================== --- trunk/matplotlib/examples/pylab_examples/annotation_demo3.py (rev 0) +++ trunk/matplotlib/examples/pylab_examples/annotation_demo3.py 2010-02-26 00:28:14 UTC (rev 8158) @@ -0,0 +1,102 @@ +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="bbox fraction"\nxybbox=artist', + xy=(0.5, 0.), xycoords=t.get_window_extent, + xytext=(0, -20), textcoords='offset points', + ha="center", va="top", + bbox=bbox_args, + arrowprops=arrow_args + ) + +ax2.annotate('xy=(0.8, 0.5)\nxycoords="bbox"\nxybbox=ax1.transData', + xy=(0.8, 0.5), xycoords=ax1.transData, + #xytext=(0, 0), textcoords='data', + 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() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |