-
-
Save vonHartz/e62d6ea22e3b61a5cbf5d622cd72445a to your computer and use it in GitHub Desktop.
Matplotlib: 3D Arrows and 3D Annotations
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"# Extending the _matplotlib_ 3D Drawing Tools\n", | |
"\n", | |
"In this gist we extend the\n", | |
"[Axes3D](https://matplotlib.org/3.1.1/api/_as_gen/mpl_toolkits.mplot3d.axes3d.Axes3D.html)\n", | |
"class by adding additional methods for plotting:\n", | |
"* 3D annotations\n", | |
"* 3D vectors\n", | |
"\n", | |
"We will be subclassing the 2D\n", | |
"[artist](https://matplotlib.org/3.1.1/tutorials/intermediate/artists.html)\n", | |
"classes to derive the corresponding 3D counterparts. The motivation for that is\n", | |
"to re-use most of the rich functionality of the 2D artists by mapping 3D to 2D. " | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"# Preparing the Notebook Environment" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 2, | |
"metadata": { | |
"tags": [ | |
"CodeExport" | |
] | |
}, | |
"outputs": [], | |
"source": [ | |
"import matplotlib.pyplot as plt\n", | |
"from mpl_toolkits.mplot3d.proj3d import proj_transform\n", | |
"from mpl_toolkits.mplot3d.axes3d import Axes3D" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"# Class Annotation3D - 3D Annotations\n", | |
"The implementation of the `Annotation3D` artist was ispired by the question\n", | |
"[Matplotlib: Annotating a 3D scatter plot](https://stackoverflow.com/questions/10374930/matplotlib-annotating-a-3d-scatter-plot). The implementation intercepts the 3D geometry parameters. All other parameters are passed through to the [Annotation](https://matplotlib.org/3.1.0/api/text_api.html#matplotlib.text.Annotation) 2D artist." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 3, | |
"metadata": { | |
"tags": [ | |
"CodeExport" | |
] | |
}, | |
"outputs": [], | |
"source": [ | |
"from matplotlib.text import Annotation" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 4, | |
"metadata": { | |
"tags": [ | |
"CodeExport" | |
] | |
}, | |
"outputs": [], | |
"source": [ | |
"class Annotation3D(Annotation):\n", | |
"\n", | |
" def __init__(self, text, xyz, *args, **kwargs):\n", | |
" super().__init__(text, xy=(0, 0), *args, **kwargs)\n", | |
" self._xyz = xyz\n", | |
"\n", | |
" def draw(self, renderer):\n", | |
" x2, y2, z2 = proj_transform(*self._xyz, self.axes.M)\n", | |
" self.xy = (x2, y2)\n", | |
" super().draw(renderer)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"For seamless integration we add the `annotate3D` method to the\n", | |
"[Axes3D](https://matplotlib.org/3.1.1/api/_as_gen/mpl_toolkits.mplot3d.axes3d.Axes3D.html) class." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 5, | |
"metadata": { | |
"tags": [ | |
"CodeExport" | |
] | |
}, | |
"outputs": [], | |
"source": [ | |
"def _annotate3D(ax, text, xyz, *args, **kwargs):\n", | |
" '''Add anotation `text` to an `Axes3d` instance.'''\n", | |
"\n", | |
" annotation = Annotation3D(text, xyz, *args, **kwargs)\n", | |
" ax.add_artist(annotation)\n", | |
"\n", | |
"setattr(Axes3D, 'annotate3D', _annotate3D)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## Example" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 6, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<Figure size 432x288 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"fig = plt.figure()\n", | |
"ax = fig.add_subplot(111, projection='3d')\n", | |
"\n", | |
"# adding a few 3d points to annotate\n", | |
"ax.scatter([0, 0, 0], [0, 0, 1], [0, 1, 0], s=30, marker='o', color='green')\n", | |
"ax.annotate3D('point 1', (0, 0, 0), xytext=(3, 3), textcoords='offset points')\n", | |
"ax.annotate3D('point 2', (0, 1, 0),\n", | |
" xytext=(-30, -30),\n", | |
" textcoords='offset points',\n", | |
" arrowprops=dict(ec='black', fc='white', shrink=2.5))\n", | |
"ax.annotate3D('point 3', (0, 0, 1),\n", | |
" xytext=(30, -30),\n", | |
" textcoords='offset points',\n", | |
" bbox=dict(boxstyle=\"round\", fc=\"lightyellow\"),\n", | |
" arrowprops=dict(arrowstyle=\"-|>\", ec='black', fc='white', lw=5))\n", | |
"ax.set_title('3D Annotation Demo')\n", | |
"ax.set_xlabel('x')\n", | |
"ax.set_ylabel('y')\n", | |
"ax.set_zlabel('z')\n", | |
"fig.tight_layout()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"# Class Arrow3D - Drawing 3d Arrows\n", | |
"\n", | |
"Actually there is already a way to draw 3D arrows in _matplotlib_ by the\n", | |
"[Axes3D.quiver](https://matplotlib.org/mpl_toolkits/mplot3d/tutorial.html?highlight=quiver#quiver).\n", | |
"However, this class is designed to draw vector fields and lacks most of the styling capabilities\n", | |
"of the `arrow` method.\n", | |
"\n", | |
"The implementation of the `Arrow3D` artist was ispired by the stack**overflow** question\n", | |
"[Plotting a 3d cube, a sphere and a vector in Matplotlib](https://stackoverflow.com/questions/11140163/plotting-a-3d-cube-a-sphere-and-a-vector-in-matplotlib).\n", | |
"The implementation intercepts the 3D geometry parameters. All other parameters are passed through to the\n", | |
"[Arrow](https://matplotlib.org/3.1.1/api/_as_gen/matplotlib.patches.Arrow.html#matplotlib.patches.Arrow)\n", | |
"2D artist." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 12, | |
"metadata": { | |
"tags": [ | |
"CodeExport" | |
] | |
}, | |
"outputs": [], | |
"source": [ | |
"import numpy as np\n", | |
"from matplotlib.patches import FancyArrowPatch" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 25, | |
"metadata": { | |
"tags": [ | |
"CodeExport" | |
] | |
}, | |
"outputs": [], | |
"source": [ | |
"class Arrow3D(FancyArrowPatch):\n", | |
"\n", | |
" def __init__(self, x, y, z, dx, dy, dz, *args, **kwargs):\n", | |
" super().__init__((0, 0), (0, 0), *args, **kwargs)\n", | |
" self._xyz = (x, y, z)\n", | |
" self._dxdydz = (dx, dy, dz)\n", | |
"\n", | |
" def draw(self, renderer):\n", | |
" x1, y1, z1 = self._xyz\n", | |
" dx, dy, dz = self._dxdydz\n", | |
" x2, y2, z2 = (x1 + dx, y1 + dy, z1 + dz)\n", | |
"\n", | |
" xs, ys, zs = proj_transform((x1, x2), (y1, y2), (z1, z2), self.axes.M)\n", | |
" self.set_positions((xs[0], ys[0]), (xs[1], ys[1]))\n", | |
" super().draw(renderer)\n", | |
" \n", | |
" def do_3d_projection(self, renderer=None):\n", | |
" x1, y1, z1 = self._xyz\n", | |
" dx, dy, dz = self._dxdydz\n", | |
" x2, y2, z2 = (x1 + dx, y1 + dy, z1 + dz)\n", | |
"\n", | |
" xs, ys, zs = proj_transform((x1, x2), (y1, y2), (z1, z2), self.axes.M)\n", | |
" self.set_positions((xs[0], ys[0]), (xs[1], ys[1]))\n", | |
"\n", | |
" return np.min(zs) " | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"For seamless integration we add the `arrow3D` method to the\n", | |
"[Axes3D](https://matplotlib.org/3.1.1/api/_as_gen/mpl_toolkits.mplot3d.axes3d.Axes3D.html) class." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 26, | |
"metadata": { | |
"tags": [ | |
"CodeExport" | |
] | |
}, | |
"outputs": [], | |
"source": [ | |
"def _arrow3D(ax, x, y, z, dx, dy, dz, *args, **kwargs):\n", | |
" '''Add an 3d arrow to an `Axes3D` instance.'''\n", | |
"\n", | |
" arrow = Arrow3D(x, y, z, dx, dy, dz, *args, **kwargs)\n", | |
" ax.add_artist(arrow)\n", | |
"\n", | |
"\n", | |
"setattr(Axes3D, 'arrow3D', _arrow3D)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## Example" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 27, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<Figure size 432x288 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"fig = plt.figure()\n", | |
"ax = fig.add_subplot(111, projection='3d')\n", | |
"ax.set_xlim(0,2)\n", | |
"ax.arrow3D(0,0,0,\n", | |
" 1,1,1,\n", | |
" mutation_scale=20,\n", | |
" arrowstyle=\"-|>\",\n", | |
" linestyle='dashed')\n", | |
"ax.arrow3D(1,0,0,\n", | |
" 1,1,1,\n", | |
" mutation_scale=20,\n", | |
" ec ='green',\n", | |
" fc='red')\n", | |
"ax.set_title('3D Arrows Demo')\n", | |
"ax.set_xlabel('x')\n", | |
"ax.set_ylabel('y')\n", | |
"ax.set_zlabel('z')\n", | |
"fig.tight_layout()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"tags": [] | |
}, | |
"source": [ | |
"# About this Jupyter Notebook\n", | |
"\n", | |
"This Gist was created using the [Jupyter Lab](https://jupyter.org/) computational notebook with\n", | |
"the python3 kernel.\n", | |
"\n", | |
"For the most part the [Google Python Style Guide](https://google.github.io/styleguide/pyguide.html) is used.\n", | |
"Code cells are formatted using the [Jupyterlab Code Formatter](https://jupyterlab-code-formatter.readthedocs.io/en/latest/index.html) configured with the\n", | |
"[YAPF (Google)](https://github.com/google/yapf).\n", | |
"\n", | |
"The Python version used in this notebook and the modules installed from [PyPI](https://pypi.org/) are listed in the table below:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 1, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/markdown": [ | |
"\n", | |
"| Component | Version | Description |\n", | |
"| -------------------------------------------- | -------------------------- | -------------------- |\n", | |
"| [Python](https://www.python.org/) | 3.10.4 | Programming Language |\n", | |
"| [matplotlib](https://matplotlib.org/) | 3.5.1 | Plotting library |\n" | |
], | |
"text/plain": [ | |
"<IPython.core.display.Markdown object>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"import sys\n", | |
"from pkg_resources import get_distribution as gd\n", | |
"import IPython.display as IPd\n", | |
"IPd.display(IPd.Markdown(\n", | |
"f'''\n", | |
"| Component | Version | Description |\n", | |
"| -------------------------------------------- | -------------------------- | -------------------- |\n", | |
"| [Python](https://www.python.org/) | {sys.version.split()[0]} | Programming Language |\n", | |
"| [matplotlib](https://matplotlib.org/) | {gd(\"matplotlib\").version} | Plotting library |\n", | |
"'''))" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": {}, | |
"outputs": [], | |
"source": [] | |
} | |
], | |
"metadata": { | |
"kernelspec": { | |
"display_name": "Python (Sandbox)", | |
"language": "python", | |
"name": "sandbox" | |
}, | |
"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.10.4" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 4 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment