title: Python & Matplotlib: Make 3D plot interactive in Jupyter Notebook
body: <p>I use Jupyter Notebook to make analysis of datasets. There are a lot of plots in the notebook, and some of them are 3d plots.</p>
  <p><a href="https://i.stack.imgur.com/cPwoQ.png" rel="noreferrer"><img src="https://i.stack.imgur.com/cPwoQ.png" alt="enter image description here" /></a></p>
  <p>I'm wondering if it is possible to make the 3d plot interactive, so I can later play with it in more details?</p>
  <p>Maybe we can add a button on it? Clicking it can pop out a 3d plot and people can zoom, pan, rotate etc.</p>
  <hr />
  <p>My thougths:</p>
  <h3>1. matplotlib, %qt</h3>
  <p>This does not fit my case, because I need to continue plot after the 3d plot. <code>%qt</code> will interfere with later plots.</p>
  <h3>2. mpld3</h3>
  <p><code>mpld3</code> is almost ideal in my case, no need to rewrite anything, compatible with matplotlib. However, it only support 2D plot. And I didn't see any plan working on 3D (<a href="https://github.com/mpld3/mpld3/issues/223" rel="noreferrer">https://github.com/mpld3/mpld3/issues/223</a>).</p>
  <h3>3. bokeh + visjs</h3>
  <p>Didn't find any actualy example of 3d plot in <code>bokeh</code> gallery. I only find <a href="https://demo.bokeh.org/surface3d" rel="noreferrer">https://demo.bokeh.org/surface3d</a>, which uses <code>visjs</code>.</p>
  <h3>4. Javascript 3D plot?</h3>
  <p>Since what I need is just line and surce, is it possible to pass the data to js plot using js in the browser to make it interacive? (Then we may need to add 3d axis as well.) This may be similar to <code>visjs</code>, and <code>mpld3</code>.</p>