Skip to content
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
Merged

Conversation

jordansamuels
Copy link
Contributor

  • follow intro style of bokeh guide
  • copy some info from Exporting guide
  • add new animated GIF example

* follow intro style of bokeh guide
* copy some info from Exporting guide
* add new animated GIF example
@jbednar
Copy link
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
Copy link
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
Copy link
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
Copy link
Member

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
Copy link
Contributor

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 holoviz:master Jul 7, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants