Revision: 8715 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8715&view=rev Author: jdh2358 Date: 2010-09-22 12:46:38 +0000 (Wed, 22 Sep 2010)
Log Message: ----------- added Bartosz Telenczuk's artist demo Added Paths: ----------- branches/v1_0_maint/examples/api/artist_demo.py Added: branches/v1_0_maint/examples/api/artist_demo.py =================================================================== --- branches/v1_0_maint/examples/api/artist_demo.py (rev 0) +++ branches/v1_0_maint/examples/api/artist_demo.py 2010-09-22 12:46:38 UTC (rev 8715) @@ -0,0 +1,119 @@ +""" +Show examples of matplotlib artists +http://matplotlib.sourceforge.net/api/artist_api.html + +Several examples of standard matplotlib graphics primitives (artists) +are drawn using matplotlib API. Full list of artists and the +documentation is available at +http://matplotlib.sourceforge.net/api/artist_api.html + +Copyright (c) 2010, Bartosz Telenczuk + +License: This work is licensed under the BSD. A copy should be +included with this source code, and is also available at +http://www.opensource.org/licenses/bsd-license.php +""" + + +import numpy as np +import matplotlib.pyplot as plt +import matplotlib +from matplotlib.collections import PatchCollection +import matplotlib.path as mpath +import matplotlib.patches as mpatches +import matplotlib.lines as mlines + +font = "sans-serif" +fig = plt.figure(figsize=(5,5)) +ax = plt.axes([0,0,1,1]) + +# create 3x3 grid to plot the artists +pos = np.mgrid[0.2:0.8:3j, 0.2:0.8:3j].reshape(2, -1) + +patches = [] + +# add a circle +art = mpatches.Circle(pos[:,0], 0.1,ec="none") +patches.append(art) +plt.text(pos[0,0], pos[1,0]-0.15, "Circle", ha="center", + family=font, size=14) + +# add a rectangle +art = mpatches.Rectangle(pos[:,1] - np.array([0.025, 0.05]), 0.05, 0.1, + ec="none") +patches.append(art) +plt.text(pos[0,1], pos[1,1]-0.15, "Rectangle", ha="center", + family=font, size=14) + +# add a wedge +wedge = mpatches.Wedge(pos[:,2], 0.1, 30, 270, ec="none") +patches.append(wedge) +plt.text(pos[0,2], pos[1,2]-0.15, "Wedge", ha="center", + family=font, size=14) + +# add a Polygon +polygon = mpatches.RegularPolygon(pos[:,3], 5, 0.1) +patches.append(polygon) +plt.text(pos[0,3], pos[1,3]-0.15, "Polygon", ha="center", + family=font, size=14) + +#add an ellipse +ellipse = mpatches.Ellipse(pos[:,4], 0.2, 0.1) +patches.append(ellipse) +plt.text(pos[0,4], pos[1,4]-0.15, "Ellipse", ha="center", + family=font, size=14) + +#add an arrow +arrow = mpatches.Arrow(pos[0,5]-0.05, pos[1,5]-0.05, 0.1, 0.1, width=0.1) +patches.append(arrow) +plt.text(pos[0,5], pos[1,5]-0.15, "Arrow", ha="center", + family=font, size=14) + +# add a path patch +Path = mpath.Path +verts = np.array([ + (0.158, -0.257), + (0.035, -0.11), + (-0.175, 0.20), + (0.0375, 0.20), + (0.085, 0.115), + (0.22, 0.32), + (0.3, 0.005), + (0.20, -0.05), + (0.158, -0.257), + ]) +verts = verts-verts.mean(0) +codes = [Path.MOVETO, + Path.CURVE4, Path.CURVE4, Path.CURVE4, Path.LINETO, + Path.CURVE4, Path.CURVE4, Path.CURVE4, Path.CLOSEPOLY] + +path = mpath.Path(verts/2.5+pos[:,6], codes) +patch = mpatches.PathPatch(path) +patches.append(patch) +plt.text(pos[0,6], pos[1,6]-0.15, "PathPatch", ha="center", + family=font, size=14) + +# add a fancy box +fancybox = mpatches.FancyBboxPatch( + pos[:,7]-np.array([0.025, 0.05]), 0.05, 0.1, + boxstyle=mpatches.BoxStyle("Round", pad=0.02)) +patches.append(fancybox) +plt.text(pos[0,7], pos[1,7]-0.15, "FancyBoxPatch", ha="center", + family=font, size=14) + +# add a line +x,y = np.array([[-0.06, 0.0, 0.1], [0.05,-0.05, 0.05]]) +line = mlines.Line2D(x+pos[0,8], y+pos[1,8], lw=5., + alpha=0.4) +plt.text(pos[0,8], pos[1,8]-0.15, "Line2D", ha="center", + family=font, size=14) + +colors = 100*np.random.rand(len(patches)) +collection = PatchCollection(patches, cmap=matplotlib.cm.jet, alpha=0.4) +collection.set_array(np.array(colors)) +ax.add_collection(collection) +ax.add_line(line) +ax.set_xticks([]) +ax.set_yticks([]) + +plt.show() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. ------------------------------------------------------------------------------ Start uncovering the many advantages of virtual appliances and start using them to simplify application deployment and accelerate your shift to cloud computing. http://p.sf.net/sfu/novell-sfdev2dev _______________________________________________ Matplotlib-checkins mailing list Matplotlib-checkins@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-checkins