{ "cells": [ { "cell_type": "raw", "metadata": { "raw_mimetype": "text/restructuredtext" }, "source": [ "Plotting\n", "********\n", "\n", "``pymaid`` piggy-backs on `navis `_ for 2D and 3D plotting of neurons. This notebook will give you a introduction but you should check out `navis `_ docs for more in-depth tutorials.\n", " \n", "\n", "Neuron objects, :class:`~pymaid.CatmaidNeuron` and :class:`~pymaid.CatmaidNeuronList` have built-in methods that call :func:`navis:navis.plot3d` or :func:`navis:navis.plot2d`.\n", "\n", "2D Plotting\n", "-----------\n", "This uses matplotlib to generate 2D plots. The big advantage is that you can save these plots as vector graphics. Unfortunately, matplotlib's capabilities regarding 3D data are limited. The main problem is that depth (z) is at best simulated by trying to layer objects according to their z-order rather than doing proper rendering. You have several options to deal with this: see ``method`` parameter in :func:`navis:navis.plot2d`. It is important to be aware of this issue as e.g. neuron A might be plotted in front of neuron B even though it is actually spatially behind it. The more busy your plot and the more neurons intertwine, the more likely this is to happen." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "INFO : Global CATMAID instance set. Caching is ON. (pymaid)\n" ] }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "", "version_major": 2, "version_minor": 0 }, "text/plain": [ "HBox(children=(HTML(value='Fetch neurons'), FloatProgress(value=0.0, max=2.0), HTML(value='')))" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "", "version_major": 2, "version_minor": 0 }, "text/plain": [ "HBox(children=(HTML(value='Make nrn'), FloatProgress(value=0.0, max=2.0), HTML(value='')))" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "", "version_major": 2, "version_minor": 0 }, "text/plain": [ "HBox(children=(HTML(value='Plot neurons'), FloatProgress(value=0.0, max=2.0), HTML(value='')))" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "import pymaid\n", "import matplotlib.pyplot as plt\n", "\n", "# Connect to CATMAID\n", "rm = pymaid.connect_catmaid()\n", "# Get two example neurons by their skeleton ID\n", "nl = pymaid.get_neurons(['57311', '27295'])\n", "\n", "# Plot using default settings\n", "fig, ax = nl.plot2d()\n", "plt.show()" ] }, { "cell_type": "raw", "metadata": { "raw_mimetype": "text/restructuredtext" }, "source": [ "Above plot used the default matplotlib 2D plot. This is very fast and convenient to get an impression of a neuron's morphology.\n", "\n", "Under the hood ``nl.plot2d`` is actually calling :func:`navis:navis.plot3d` - this works because :class:`pymaid.CatmaidNeuron` is a subclass of :class:`navis:navis.TreeNeuron` and any ``navis`` function that works with ``TreeNeurons`` also works with ``CatmaidNeurons`` or lists thereof. Hence, we could also do this:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "", "version_major": 2, "version_minor": 0 }, "text/plain": [ "HBox(children=(HTML(value='Plot neurons'), FloatProgress(value=0.0, max=2.0), HTML(value='')))" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "import navis\n", "\n", "# Plot using default settings\n", "fig, ax = navis.plot2d(nl)\n", "plt.show()" ] }, { "cell_type": "raw", "metadata": { "raw_mimetype": "text/restructuredtext" }, "source": [ "Matplotlib has some basic 3D plotting capabilities that are perfectly sufficient for simple visualizations but are limited when it comes to perspectively correct z-ordering. Not perfect but this \"2.5D\" allows us to rotate neurons:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "image/png": "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6IMH+WbyZBrecAP+/v54u7uzNjmZBfHxVPH0pG/9+vStX5+YQ4d4UjvPisipFLbn41hRETvS0kjOycHf05M+9esDkJKTQ2RSEmn5+dzSvDmBPj5OrlREyhmFrYiICbQtjohIeaGwFRExgcJWRMQEClsRERMobEVETKCwFRExgcJWRMQEClsRERMobEVETKCwFRExgcJWRMQEClsRERMobEVETKCwFRExgcJWRMQEClsRERMobEVETKCwFRExgcJWRMQEClsRERMobEVETKCwFRExgcJWRMQEClsRERMobEVETKCwFRExgcJWRMQEClsRERMobEVETKCwFRExgcJWRMQEClsRERMobEVETKCwFRExgcJWRMQEClsRERMobEVETKCwFRExgcJWRMQEClsRERMobEVETKCwFRExgcJWRMQEClsRERMobEVETKCwFRExgcJWRMQEClsRERMobEVETKCwFRExgcJWRMQEClsRERMobEVETKCwFRExgcJWRMQEClsRERMobEVETKCwFRExgcJWRMQEClsRERMobEVETKCwFRExgcJWRMQEClsRERMobEVETKCwFRExgcJWRMQEClsRERMobEVETKCwFRExgcJWRMQEClsRERMobEVETKCwFRExgcJWRMQEClsRERMobEVETKCwFRExgcJWRMQEClsRERMobEVETKCwFRExgcJWRMQEClsRERMobEVETKCwFRExgcJWRMQEClsRERMobEVETKCwFRExgcJWRMQEClsRERMobEVETKCwFRExgcJWRMQEClsRERMobEVETKCwFRExgcJWRMQEClsRERMobEVETKCwFRExgcJWRMQEClsRERMobEVETKCwFRExgcJWRMQEClsRERMobEVETKCwFRExgcJWRMQEClsRERMobEVETKCwFRExgcJWRMQEClsRERMobEVETKCwFRExgcJWRMQEClsRERMobEVETKCwFRExgcJWRMQEClsRERMobEVETKCwFRExgcJWRMQEClsRERMobEVETKCwFRExgcJWRMQEClsRERMobEVETKCwFRExgdt5vt5yUaoQEbnE6cpWRMQEClsRERMobEVETKCwFRExgcJWRMQEClsRERMobEVETKCwFRExgcJWRMQEClsRERP8H9d+m3vpwmmOAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Plot using matplotlib's 3D capabilities\n", "fig, ax = navis.plot2d(nl, method='3d_complex')\n", "# Change from default frontal view to lateral view\n", "ax.azim = 0\n", "# Zoom in a bit\n", "ax.dist = 6\n", "plt.show()" ] }, { "cell_type": "raw", "metadata": { "raw_mimetype": "text/restructuredtext" }, "source": [ "Noticed how we changed the perspective by adjusting the azimuth (``.azim``)? You can also change the elevation (``.elev``) to get a top view. \n", "\n", "This can even be used to generate small animations:" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Render 3D rotation\n", "fig, ax = navis.plot2d(nl, method='3d_complex')\n", "\n", "for i in range(0, 360, 10):\n", " # Change rotation\n", " ax.azim = i\n", " # Save each incremental rotation as frame\n", " plt.savefig('frame_{0}.png'.format(i), dpi=200)" ] }, { "cell_type": "raw", "metadata": { "raw_mimetype": "text/restructuredtext" }, "source": [ "Plotting volumes\n", "++++++++++++++++\n", ":func:`navis:navis.plot2d` and :func:`navis:navis.plot3d` are capable of visualizing neurons and volumes but can also plot scatter plots. You can combine multiple objects by passing them as a simple list ``[]``:" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "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kx8QAHY758TFsTY7m2Vjxpizgtdeg3PPNas7ageFrdRf7V99la0nFjXxeuH//s9ste3SxczdnncezJsHnTqxc948rvr+e75/7DFGTJ+Oze3mlilTuMjj4e1rriG5f38u/vhjHBUV+LlcXHjmmYw780wKystZnZ3Nc0uXkhwWxua8PDKffZbg4GBejY9n3PDh5sh23Lh61QbmF3m9sHOnWQUyfTqu0lIWNm/O3eedxz2dOnHDsGFm2decOb4e6clQ2Er99FZ6Outzcnjloov+84te7/F1r9nZpuBMZCS79+7lw2ef5cHqapbeey93zJ3LshtvJMTfn20pKYRmZHDXkCE4IyP5k9vNfUFBDElKYmNlJfENGjB382YCnU7Oio6mtKqKErudJePGcffQobwwaZKpvSC/rKwMFizgidmzeXjmTPMzevBBuP12X4/st1LVL6mf8srKfjlo4ecbDJo2BcDj8XDjggVMj4riEa+XJjk5rL755mPLmZoNHsyVZ5zB1y++iK2wEHJz6TN+PO0++ICcceN4umFDVq5cyZy2bemyYQPfXHUVG8rKAPB27Ah/+xt89lmNvudaLTgYBg+mMjjYzNWWl8Obb/p6VKdcHZ+tl9PW44+bQty9esH48eB2n7KXXp+T87PbV3/+OfN27MDt8eA58UzO5eKrjAyuio3lebeb++67jzt69frZulHb7beT2bYtq/bvN8uREhNpc+utfHf99czv2ZMX162j3V//yo3338/8mBguaNWKao+HJxcvZntcHI2TkpiwaBEneRZZ7xz7dMrL4Zfm22s5ha1Y78EH4YMPzMWpAwfg3/+GkSNP2cs3Dgk59u9XVq5kdOfODEpI4MUVKzh05IiT9HSYMIFdTz/N5dOmsWvNGm5LT8fv5ZdN0fAjvC4XC/v2pXPjxiR6PLBwITklJTwWEkL1oDsZdf752IcNg6uuYtGQIaz286Psyy85vGkTw+bMoc8PP/CPlSup9nh4esmSU/Ye65opGzeyYt8+c6NBA1O6so7RnK1Yr2tXONpl1e02S6IcDli/Hn4SlCfL5QKv18sNs76g8ZFlRaVVVbwxZAhgdio98/33XFZQwBmHDsFttxHy1FP42+0cSknh04gIPt+wgah9+3ijf38480zA7N+PDAwEr5eK1q155pZbuHfsWCbcdIingh7H7nWzKCuLeX37Mr1h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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Retrieve volume\n", "lh = pymaid.get_volume('LH_R')\n", "# Set color and alpha\n", "lh.color = (0, 1, 0, .1)\n", "# Plot\n", "fig, ax = navis.plot2d([nl ,lh], method='3d_complex')\n", "ax.dist = 6\n", "plt.show()" ] }, { "cell_type": "raw", "metadata": { "raw_mimetype": "text/restructuredtext" }, "source": [ "Interactive 3D Plotting\n", "-----------------------\n", "For 3D plots, we are using either Vispy (default) or Plotly to render neurons and volumes. \n", "\n", ".. important:: \n", " In general, you want to use Vispy if you are using the terminal or an IDE, and Plotly \n", " if you are working with Jupyter notebooks. Please note that Vispy currently simply does\n", " NOT work within Jupyter notebooks.\n", " \n", "By default, ``navis`` will detect whether you are working in a Jupyter notebook or not, and choose the correct backend automatically: Vispy for terminal, Plotly for Jupyter. For demonstration purposes, we will override this by using the ``backend`` parameter of :func:`navis:navis.plot3d`.\n", " \n", "Our first two example use Vispy:" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Plot using Vispy (will open 3D viewer)\n", "viewer = nl.plot3d(backend='vispy')\n", "# Save screenshot\n", "viewer.screenshot('screenshot.png', alpha=True)" ] }, { "cell_type": "raw", "metadata": { "raw_mimetype": "text/restructuredtext" }, "source": [ ".. note::\n", " Vispy itself uses either one of these backends:\n", " Qt, GLFW,SDL2, Wx, or Pyglet. By default, ``navis``\n", " installs and sets PyQt5 as vispy's backend. If\n", " you need to change that use e.g. ``vispy.use(app='PyQt4')``\n", "\n", "The :class:`navis:navis.Viewer` is persistent and survives simply closing the window. Calling :func:`navis:navis.plot3d` again will add objects to the canvas and open it again." ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Add another set of neurons to existing canvas\n", "nl2 = pymaid.get_neurons([987675, 543210])\n", "nl2.plot3d(backend='vispy')\n", "\n", "# To clear canvas either pass parameter when plotting...\n", "nl2.plot3d(clear3d=True)\n", "\n", "# ... or call function to clear\n", "navis.clear3d()\n", "\n", "# To wipe canvas from memory\n", "navis.close3d()" ] }, { "cell_type": "raw", "metadata": {}, "source": [ "If working with multiple viewers, you can specify which :class:`navis:navis.Viewer` to add the neurons to." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "# Open 2 iewers\n", "v1 = navis.Viewer()\n", "v2 = navis.Viewer()\n", "\n", "# Add neurons to each one separately\n", "v1.add(nl)\n", "v2.add(nl2)\n", "\n", "# Clear one viewer\n", "v1.clear()\n", "\n", "# Close the second viewer\n", "v2.close()" ] }, { "cell_type": "raw", "metadata": {}, "source": [ "If you've lost track of your viewer, simply use :func:`navis:navis.get_viewer` to get it back:" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "v = navis.get_viewer()" ] }, { "cell_type": "raw", "metadata": { "raw_mimetype": "text/restructuredtext" }, "source": [ "Now let's have a look at Plotly as backend:" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Using plotly as backend generates \"inline\" plots by default (i.e. they are rendered right away)\n", "fig = nl.plot3d(backend='plotly', connectors=True, width=1000)" ] }, { "cell_type": "raw", "metadata": { "raw_mimetype": "text/restructuredtext" }, "source": [ ".. raw:: html\n", " :file: 3d_plot.html\n", "\n", "|\n", "|\n", "|\n", "|" ] }, { "cell_type": "raw", "metadata": { "raw_mimetype": "text/restructuredtext" }, "source": [ "Navigating the 3D viewer\n", "++++++++++++++++++++++++\n", "\n", "1. Rotating: Hold left mousebutton\n", "2. Zooming: Use the mousewheel or hold left+right mousebutton and drag\n", "3. Panning: Hold shift + left mousebutton\n", "4. Perspective: Hold shift + left and right mousbutton\n", "5. Hide/unhide: Click legend (Vispy only)\n", "\n", "Adding volumes\n", "++++++++++++++ \n", "\n", ":func:`navis:navis.plot3d` allows plotting of volumes (e.g. neuropil meshes). It's very straight forward to use meshes directly from your CATMAID Server:\n", "There is a custom class for CATMAID Volumes, :class:`navis:navis.Volume` which has some neat methods - check out its reference." ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Provide colors\n", "vols = [pymaid.get_volume('LH_R', color=(255, 0, 0, .2)),\n", " pymaid.get_volume('LH_L', color=(0, 255, 0, .2))]\n", "fig = navis.plot3d([nl, *vols], backend='plotly', width=1000)" ] }, { "cell_type": "raw", "metadata": { "raw_mimetype": "text/restructuredtext" }, "source": [ ".. raw:: html\n", " :file: 3d_volumes.html\n", "\n", "|\n", "|\n", "|\n", "|" ] }, { "cell_type": "raw", "metadata": { "raw_mimetype": "text/restructuredtext" }, "source": [ "You can also pass your own custom volumes:" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": true }, "outputs": [], "source": [ "cust_vol = navis.Volume(vertices=[[1, 2, 1],\n", " [5, 6, 7],\n", " [8, 6, 4]],\n", " faces=[(0, 1, 2)],\n", " name='custom volume',\n", " color=(255, 0, 0))\n", "fig = navis.plot3d(cust_vol, backend='plotly', width=1000)" ] }, { "cell_type": "raw", "metadata": { "raw_mimetype": "text/restructuredtext" }, "source": [ ".. raw:: html\n", " :file: 3d_custom.html\n", " \n", "|\n", "|\n", "|\n", "| " ] } ], "metadata": { "celltoolbar": "Raw Cell Format", "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.7.5" } }, "nbformat": 4, "nbformat_minor": 2 }