import matplotlib.pyplot as plt from matplotlib.path import Path import matplotlib.patches as patches from matplotlib.transforms import Affine2D #Different sets of dots #========================================================= #standard vertices verts = [ (0., 0.), (0., 4.), (1., 1.), (4., 0.), (0., 0.), ] #rotated vertices rotated_verts=Affine2D().rotate_deg(60).transform(verts) #scale vertices scaled_verts=Affine2D().scale(0.5,0.5).transform(verts) #translated vertices translated_verts=Affine2D().translate(2,2).transform(verts) #How we will Connect the Dots #========================================================== #How we will link together these vertices codes = [Path.MOVETO, Path.LINETO, Path.LINETO, Path.LINETO, Path.CLOSEPOLY, ] #Creating the paths from dot to dot #=========================================================== path = Path(verts, codes) rotpath=Path(rotated_verts,codes) sclpath=Path(scaled_verts,codes) trspath=Path(translated_verts,codes) #plot shapes created by connecting dots #============================================================ plt.clf() fig = plt.figure() ax = fig.add_subplot(111) patch = patches.PathPatch(path, facecolor='green', lw=2,edgecolor='black',alpha=0.5) rotatedpatch=patches.PathPatch(rotpath,facecolor='blue',lw=2,edgecolor='black',alpha=0.5) scaledpatch=patches.PathPatch(sclpath,facecolor='red',lw=2,edgecolor='black',alpha=0.5) translatedpatch=patches.PathPatch(trspath,facecolor='yellow',lw=1,edgecolor='black',alpha=0.5) ax.add_patch(patch) ax.add_patch(rotatedpatch) ax.add_patch(scaledpatch) ax.add_patch(translatedpatch) ax.set_xlim(-5,5) ax.set_ylim(-5,5) plt.show()
This will give the figure below:
No comments:
Post a Comment