New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Start matplotlib guide #1658

Merged
merged 1 commit into from Jul 7, 2017

Conversation

Projects
None yet
4 participants
@jordansamuels
Contributor

jordansamuels commented Jun 30, 2017

  • follow intro style of bokeh guide
  • copy some info from Exporting guide
  • add new animated GIF example
Jordan Samuels
Start matplotlib guide
* follow intro style of bokeh guide
* copy some info from Exporting guide
* add new animated GIF example
@jbednar

This comment has been minimized.

Member

jbednar commented Jun 30, 2017

Thanks! Bokeh just added SVG and PNG exporting, which is supported by HoloViews, so maybe it's best if this notebook just points to the relevant bit of Exporting when discussing output like that? Exporting is no longer matplotlib-only.

@jbednar

This comment has been minimized.

Member

jbednar commented Jun 30, 2017

What I would think would be useful to add to this notebook is a discussion of how the matplotlib backend works, in comparison to the Bokeh or plotly backends, and what the pros and cons are. Basically, for static output the matplotlib backend renders each the plot (or each plot, for a HoloMap) to a PNG, and then HoloViews generates JavaScript that provides widgets to select between these pre-rendered PNGs. This process is very different from the Bokeh or Plotly backends, which generate JavaScript/HTML directly that contains specific glyphs corresponding to the data in the plot.

The matplotlib backend approach has the advantage that the output size is largely independent of the amount of data involved, and that the resulting output requires less JavaScript and is overall simpler once rendered, which also makes it more future-proof as a saved plot with widgets.

The bokeh/plotly approach has the advantage that these backends provide interactivity within the plot, even in a static HTML/JS output, which opens up a wide range of possible user-visible functionality such as zooming in to see detail, dynamically re-rendering plots on zooming with Datashader, and so on . At least in principle, for small numbers of datapoints spread across many frames of a HoloMap, the Bokeh/Plotly approach could have much smaller file sizes, but I haven't done benchmarking to see where the crossover point would be.

@jbednar

This comment has been minimized.

Member

jbednar commented Jun 30, 2017

You could also mention that the matplotlib and plotly backends provide 3D plotting with HoloViews, unlike the Bokeh backend. And at the moment, subfigure labels are only supported for matplotlib. Can't think of any other mpl-specific functionality...

@philippjfr

This comment has been minimized.

Member

philippjfr commented Jul 7, 2017

I agree with all your comments @jbednar. That said this seems like a reasonable start and I'd be open to merging it and improving it later.

@jlstevens

This comment has been minimized.

Member

jlstevens commented Jul 7, 2017

I agree with Philipp and I'll merge now. I've recorded Jim's suggestions on the newly created wiki page for this user guide here.

@jlstevens jlstevens merged commit 2254d17 into ioam:master Jul 7, 2017

3 checks passed

continuous-integration/travis-ci/pr The Travis CI build passed
Details
coverage/coveralls Coverage remained the same at 79.676%
Details
s3-reference-data-cache Tests passing no test data changes required.
Details
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment