{ "cells": [ { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "from matplotlib import pyplot\n", "%matplotlib inline\n", "\n", "from shapely.geometry import Polygon, Point\n", "from descartes.patch import PolygonPatch" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "\n", "\n", "GRAY='#999999'\n", "BLUE='#222299'\n", "\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "\n", "fig = pyplot.figure(1, figsize=(12,20), dpi=90)\n", "\n", "a = Point(1, 1).buffer(1.5)\n", "b = Point(2, 1).buffer(1.5)\n", "\n", "# 1\n", "ax = fig.add_subplot(121)\n", "\n", "patch1 = PolygonPatch(a, fc=GRAY, ec=GRAY, alpha=0.2, zorder=1)\n", "ax.add_patch(patch1)\n", "patch2 = PolygonPatch(b, fc=GRAY, ec=GRAY, alpha=0.2, zorder=1)\n", "ax.add_patch(patch2)\n", "c = a.intersection(b)\n", "patchc = PolygonPatch(c, fc=BLUE, ec=BLUE, alpha=0.5, zorder=2)\n", "ax.add_patch(patchc)\n", "\n", "ax.set_title('a.intersection(b)')\n", "\n", "xrange = [-1, 4]\n", "yrange = [-1, 3]\n", "ax.set_xlim(*xrange)\n", "ax.set_xticks([-1, 0, 1, 2, 3])\n", "ax.set_ylim(*yrange)\n", "ax.set_yticks([-1, 0, 1, 2, 3])\n", "ax.set_aspect(1)\n", "\n", "#2\n", "ax = fig.add_subplot(122)\n", "\n", "patch1 = PolygonPatch(a, fc=GRAY, ec=GRAY, alpha=0.2, zorder=1)\n", "ax.add_patch(patch1)\n", "patch2 = PolygonPatch(b, fc=GRAY, ec=GRAY, alpha=0.2, zorder=1)\n", "ax.add_patch(patch2)\n", "c = a.symmetric_difference(b)\n", "\n", "if c.geom_type == 'Polygon':\n", " patchc = PolygonPatch(c, fc=BLUE, ec=BLUE, alpha=0.5, zorder=2)\n", " ax.add_patch(patchc)\n", "elif c.geom_type == 'MultiPolygon':\n", " for p in c:\n", " patchp = PolygonPatch(p, fc=BLUE, ec=BLUE, alpha=0.5, zorder=2)\n", " ax.add_patch(patchp)\n", "\n", "ax.set_title('a.symmetric_difference(b)')\n", "\n", "xrange = [-1, 4]\n", "yrange = [-1, 3]\n", "ax.set_xlim(*xrange)\n", "ax.set_xticks([-1, 0, 1, 2, 3])\n", "ax.set_ylim(*yrange)\n", "ax.set_yticks([-1, 0, 1, 2, 3])\n", "ax.set_aspect(1)\n", "\n", "pyplot.show()\n", "\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.5" } }, "nbformat": 4, "nbformat_minor": 2 }