Revision: 6102
          http://matplotlib.svn.sourceforge.net/matplotlib/?rev=6102&view=rev
Author:   jdh2358
Date:     2008-09-17 20:53:16 +0000 (Wed, 17 Sep 2008)

Log Message:
-----------
committed Jae-Joons fancy box examples

Modified Paths:
--------------
    trunk/matplotlib/examples/tests/backend_driver.py

Added Paths:
-----------
    trunk/matplotlib/examples/pylab_examples/fancybox_demo.py
    trunk/matplotlib/examples/pylab_examples/fancytextbox_demo.py

Added: trunk/matplotlib/examples/pylab_examples/fancybox_demo.py
===================================================================
--- trunk/matplotlib/examples/pylab_examples/fancybox_demo.py                   
        (rev 0)
+++ trunk/matplotlib/examples/pylab_examples/fancybox_demo.py   2008-09-17 
20:53:16 UTC (rev 6102)
@@ -0,0 +1,171 @@
+import matplotlib.pyplot as plt
+import matplotlib.transforms as mtransforms
+from matplotlib.patches import FancyBboxPatch
+
+
+# Bbox object around which the fancy box will be drawn.
+bb = mtransforms.Bbox([[0.3, 0.4], [0.7, 0.6]])
+
+def draw_bbox(ax, bb):
+    # boxstyle=square with pad=0, i.e. bbox itself.
+    p_bbox = FancyBboxPatch((bb.xmin, bb.ymin),
+                            abs(bb.width), abs(bb.height), 
+                            boxstyle="square,pad=0.",
+                            ec="k", fc="none", zorder=10.,
+                            )
+    ax.add_patch(p_bbox)
+
+def test1(ax):
+
+    # a fancy box with round corners. pad=0.1
+    p_fancy = FancyBboxPatch((bb.xmin, bb.ymin),
+                             abs(bb.width), abs(bb.height),
+                             boxstyle="round,pad=0.1",
+                             fc=(1., .8, 1.),
+                             ec=(1., 0.5, 1.))
+
+
+    ax.add_patch(p_fancy)
+
+    ax.text(0.1, 0.8,
+            r' boxstyle="round,pad=0.1"',
+            size=10, transform=ax.transAxes)
+
+    # draws control points for the fancy box.
+    #l = p_fancy.get_path().vertices
+    #ax.plot(l[:,0], l[:,1], ".")
+
+    # draw the original bbox in black
+    draw_bbox(ax, bb)
+
+
+def test2(ax):
+
+    # bbox=round has two optional argument. pad and rounding_size.
+    # They can be set during the initiallization.
+    p_fancy = FancyBboxPatch((bb.xmin, bb.ymin),
+                             abs(bb.width), abs(bb.height),
+                             boxstyle="round,pad=0.1",
+                             fc=(1., .8, 1.),
+                             ec=(1., 0.5, 1.))
+
+
+    ax.add_patch(p_fancy)
+
+    # boxstyle and its argument can be later modified with
+    # set_boxstyle method. Note that the old attributes are simply
+    # forgotten even if the boxstyle name is same.
+
+    p_fancy.set_boxstyle("round,pad=0.1, rounding_size=0.2")
+    #or
+    #p_fancy.set_boxstyle("round", pad=0.1, rounding_size=0.2)
+
+    ax.text(0.1, 0.8,
+            ' boxstyle="round,pad=0.1\n rounding\\_size=0.2"',
+            size=10, transform=ax.transAxes)
+
+    # draws control points for the fancy box.
+    #l = p_fancy.get_path().vertices
+    #ax.plot(l[:,0], l[:,1], ".")
+    
+    draw_bbox(ax, bb)
+
+
+
+def test3(ax):
+
+    # mutation_scale determine overall scale of the mutation,
+    # i.e. both pad and rounding_size is scaled according to this
+    # value.
+    p_fancy = FancyBboxPatch((bb.xmin, bb.ymin),
+                             abs(bb.width), abs(bb.height),
+                             boxstyle="round,pad=0.1",
+                             mutation_scale=2.,
+                             fc=(1., .8, 1.),
+                             ec=(1., 0.5, 1.))
+
+
+    ax.add_patch(p_fancy)
+
+    ax.text(0.1, 0.8,
+            ' boxstyle="round,pad=0.1"\n mutation\\_scale=2',
+            size=10, transform=ax.transAxes)
+
+    # draws control points for the fancy box.
+    #l = p_fancy.get_path().vertices
+    #ax.plot(l[:,0], l[:,1], ".")
+    
+    draw_bbox(ax, bb)
+
+
+
+def test4(ax):
+
+    # When the aspect ratio of the axes is not 1, the fancy box may
+    # not be what you expected (green)
+    
+    p_fancy = FancyBboxPatch((bb.xmin, bb.ymin),
+                             abs(bb.width), abs(bb.height),
+                             boxstyle="round,pad=0.2",
+                             fc="none",
+                             ec=(0., .5, 0.), zorder=4)
+
+
+    ax.add_patch(p_fancy)
+
+
+    # You can compensate this by setting the mutation_aspect (pink).
+    p_fancy = FancyBboxPatch((bb.xmin, bb.ymin),
+                             abs(bb.width), abs(bb.height),
+                             boxstyle="round,pad=0.3",
+                             mutation_aspect=.5, 
+                             fc=(1., 0.8, 1.),
+                             ec=(1., 0.5, 1.))
+
+
+    ax.add_patch(p_fancy)
+
+    ax.text(0.1, 0.8,
+            ' boxstyle="round,pad=0.3"\n mutation\\_aspect=.5',
+            size=10, transform=ax.transAxes)
+    
+    draw_bbox(ax, bb)
+
+
+
+def test_all():
+    plt.clf()
+
+    ax = plt.subplot(2, 2, 1)
+    test1(ax)
+    ax.set_xlim(0., 1.)
+    ax.set_ylim(0., 1.)
+    ax.set_title("test1")
+    ax.set_aspect(1.)
+
+
+    ax = plt.subplot(2, 2, 2)
+    ax.set_title("test2")
+    test2(ax)
+    ax.set_xlim(0., 1.)
+    ax.set_ylim(0., 1.)
+    ax.set_aspect(1.)
+
+    ax = plt.subplot(2, 2, 3)
+    ax.set_title("test3")
+    test3(ax)
+    ax.set_xlim(0., 1.)
+    ax.set_ylim(0., 1.)
+    ax.set_aspect(1)
+
+    ax = plt.subplot(2, 2, 4)
+    ax.set_title("test4")
+    test4(ax)
+    ax.set_xlim(-0.5, 1.5)
+    ax.set_ylim(0., 1.)
+    ax.set_aspect(2.)
+
+    plt.draw()
+    plt.show()
+
+test_all()

Added: trunk/matplotlib/examples/pylab_examples/fancytextbox_demo.py
===================================================================
--- trunk/matplotlib/examples/pylab_examples/fancytextbox_demo.py               
                (rev 0)
+++ trunk/matplotlib/examples/pylab_examples/fancytextbox_demo.py       
2008-09-17 20:53:16 UTC (rev 6102)
@@ -0,0 +1,21 @@
+import matplotlib.pyplot as plt
+
+plt.text(0.6, 0.5, "test", size=50, rotation=30.,
+         ha="center", va="center", 
+         bbox = dict(boxstyle="round",
+                     ec=(1., 0.5, 0.5),
+                     fc=(1., 0.8, 0.8),
+                     )
+         )
+
+plt.text(0.5, 0.4, "test", size=50, rotation=-30.,
+         ha="right", va="top", 
+         bbox = dict(boxstyle="square",
+                     ec=(1., 0.5, 0.5),
+                     fc=(1., 0.8, 0.8),
+                     )
+         )
+
+    
+plt.draw()
+plt.show()

Modified: trunk/matplotlib/examples/tests/backend_driver.py
===================================================================
--- trunk/matplotlib/examples/tests/backend_driver.py   2008-09-17 20:52:08 UTC 
(rev 6101)
+++ trunk/matplotlib/examples/tests/backend_driver.py   2008-09-17 20:53:16 UTC 
(rev 6102)
@@ -52,6 +52,8 @@
     'date_demo2.py',
     'equal_aspect_ratio.py',
     'errorbar_limits.py',
+    'fancybox_demo.py',
+    'fancytextbox_demo.py',
     'figimage_demo.py',
     'figlegend_demo.py',
     'figure_title.py',


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Matplotlib-checkins mailing list
Matplotlib-checkins@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-checkins

Reply via email to