Replies: 7 comments
-
That's a very helpful list! And a lot of work. :-) For my own work, I'm most interested in prioritizing the Potential new elements, particularly the 3D ones, to exploit the unique features of Plotly compared to the other HoloViews backends. But others may be interested in helping Plotly achieve feature parity with the other backends by fleshing out the Established Elements, so that HoloViews becomes a viable high-level API for working with Plotly. |
Beta Was this translation helpful? Give feedback.
-
My wishlist: 3D elements that work in holoviews are the feature I would use immediately. |
Beta Was this translation helpful? Give feedback.
-
+1 for parallel coordinates, it's really useful for plotting high-dimensional data spaces |
Beta Was this translation helpful? Give feedback.
-
Hope you don't mind but I've added check boxes to your list of elements and updated them with what I've implemented in #3256. |
Beta Was this translation helpful? Give feedback.
-
Great idea! |
Beta Was this translation helpful? Give feedback.
-
FYI, I've started playing with adding support for the Selection1D stream. What I have is a bit of a mess, but I think I've worked out a rough approach for adding interactive stream support. Hopefully I'll be able to get something in PR shape this week. |
Beta Was this translation helpful? Give feedback.
-
Can I convert this to a Discussion? |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Overview
As discussed briefly in #3194 with @philippjfr , this is an issue to catalog some of the ways that the plotly backend could be enhanced by taking advantage of existing plotly.py/plotly.js features. Feedback appreciated π
Established Elements
The following elements are supported by matplotlib and/or bokeh and could also be supported with plotly.
Curve
,Area
, andSpread
with polar projection.barpolar
trace (See https://plot.ly/python/wind-rose-charts/)Potential new elements
The following are potential new elements that I don't think are currently supported by matplotlib/bokeh (but if I'm wrong we can just bump them up to the previous section)
General Improvements / Fixes:
Move fromReplaced by new subplot foundations in New subplot foundation for Plotly backendΒ #3255.plotly.tools.make_subplots
to usinglayout.grid
for laying out subplots. Thisway all trace types are supported (the
make_subplots
approach only really supports 2D and 3D subplots, not tables, polar, etc.).Streams
Plotly.js emits the events needed to detect selecting, clicking, and hovering over points in a trace.
It also emits events in response to zoom and pan. It does not currently emit events for clicking
and hovering the plot background (only when clicking or hover on particular points).
So I think it would be possible to support the, Selection1D, Range(X/Y), and Bounds(X/Y) streams across the elements based on scatter, scatter polar, bar, bar polar, ternary, and heatmap traces.
There might be a bit of a mismatch with the click/hover events. since plotly.js associates these with points and it looks like Holoviews wants positions.
Datashader
With the
RangeXY
stream and ability to displayRGB
images I think it should be possible to support datashader. Here's an example of wireing up datashader in plotly.py directly withFigureWidget
callbacks https://plot.ly/python/change-callbacks-datashader/.Performance
All of plotly's 3D trace types are WebGL accelerated. The 2D scatter trace (which would be used for the scatter, line, area, and spread elements) and scatter polar trace have both D3+SVG and WebGL implementations. The WebGL implementations support a million or so points and are pretty much feature complete so we would want to default to these, with the option of falling back to non-WebGL for generating static images in vector format.
Static image export
plotly.py recently got (standalone offline) static image export support, see https://plot.ly/python/static-image-export/. This is electron-based and so it was possible to package everything using conda without a dependency on a system web browser or webdriver. It supports raster (png, jpg, webp) and vector (svg, pdf, eps) image formats, and all formats support figures with multiple subplots. Note: All plot types can be output to vector formats, but stuff that's rendered with webgl will be embedded in raster form.
LaTeX
Plotly supports rendering labels and annotations with LaTeX using MathJax. This is now supported in the Jupyter notebook, JupyterLab, in standalone html files, and in static image export (raster and vector). So this would make the plotly backend capable of supporting both interactive exploration and the generation of publication quality vector images with LaTeX typesetting.
Themes
Plotly recently got theming support (See https://medium.com/@plotlygraphs/introducing-plotly-py-theming-b644109ac9c7). It's possible to configure a theme to be used by default, so it might not be necessary for Holoviews to be aware of them. But it might also be nice to be able to configure the current theme as an option.
Beta Was this translation helpful? Give feedback.
All reactions