# let's plot everything
plt.clf()
fig = plt.figure()
ax = fig.add_subplot(111, axisbg='w', frame_on=False)
cpatch = PolygonPatch(casa, fc='#33CCFF', ec='#000000', lw=.5, alpha=.75, zorder=2)
rpatch = PolygonPatch(ritoque, fc='none', ec='#333333', lw=0, ls='dotted', hatch='....', zorder=1)
rpatch_correct = PolygonPatch(ritoque_correct, fc='#CC00CC', ec='#000000', lw=.5, alpha=.75, zorder=2)
# the concentric circles are treated as a PatchCollection
ppatch = PatchCollection(
[PolygonPatch(poly) for poly in perth],
color='none', edgecolor='#ff0000', lw=0.85, alpha=0.75, zorder=3)
# draw map features
m.drawmapboundary(fill_color='none', linewidth=0.25, zorder=0)
# m.drawcountries(linewidth=.25, color='#000000', zorder=2)
m.drawcoastlines(linewidth=.5, zorder=1)
m.fillcontinents(color='#555555', lake_color='#555555', zorder=1)
# m.drawparallels(np.arange(-90., 120., 30.), alpha=0.5, lw=0.25, zorder=1)
# m.drawmeridians(np.arange(0., 360., 60.), alpha=0.5, lw=0.25, zorder=1)
# draw circles
ax.add_patch(cpatch)
ax.add_patch(rpatch)
ax.add_patch(rpatch_correct)
ax.add_collection(ppatch)
# draw great circles - note perth --> ritoque is correct as of Basemap v1.0.8
m.drawgreatcircle(rlon, rlat, centerlon, centerlat, lw=1.75, color='#FFCC00', zorder=1)
m.drawgreatcircle(centerlon, centerlat, plon, plat, lw=1.75, color='#FFCC00', zorder=1)
m.drawgreatcircle(plon, plat, rlon, rlat, lw=1.75, color='#FFCC00', zorder=1)
# with apologies to Sugababes
plt.title("Like a Circle in a Spiral")
plt.tight_layout()
fig.set_size_inches(7.28, 5.5)
# plt.savefig('circles.png', alpha=True)
plt.savefig("circles.png", format="png", bbox_inches='tight', transparent=True, dpi=300)
plt.show()