Description
Overview
This is an issue for discussing what we'd like to work towards in a future version 4, mostly focusing on changes that would not be backwards compatible. Nothing here is set in stone and feedback is welcome.
Theming
Lets make the defualt theme be plotly
or plotly_white
(#1224)
Integrate px
Integrate the px
project for exploratory data analysis directly into plotly.py (https://github.com/plotly/px)
Redo subplot support
There are a bunch of outstanding issues with the make_subplots
function. The most significant limitation being that it doesn't support non-Cartesian subplot types.
Last year, plotly.js introduced its own subplot layout system (layout.grid
) so we could build the new subplot system on top of that (See plotly/plotly.js#3507 ). Hopefully we could still support the make_subplots
API, but give most of the work to plotly.js
I would also like to add support for accessing traces by subplot. Something like
figure.get_traces(row=2, col=1)
. This would allow users to construct an initial figure using px
, and then easily grab particular traces to customize using .update
or property assignment syntax. See #1484.
Self displaying figures
I would like to allow go.Figure
to display itself as a plotly.js figure when used in an ipython context. We have a prototype of this in px
with FigurePx
I would like to extend this a bit so that it's possible to use a global setting to configure how go.Figure
should display itself. FigurePx
is using the init_notebook_mode
/iplot
approach, but I'd also like to support a static image display (using orca) that would be suitable for use in QtConsole/Spyder and for PDF export.
These changes would not affect FigureWidget
. FigureWidget
will remain a separate class that is distinct from go.Figure
in that is is a widget subclass and supports updating properties in place.
Convert offline html export to plotly.io
module
Replace the plotly.offline.plot
function with functions in the plotly.io
module (#1098)
Split off choropleth figure factory into a separate package
Splitting the county choropleth figure factories into a separate package would help a lot with reducing the plotly.py package size. Then we could add additional shape files to that geo-plotly package to support different geographic regions.
Split off plotly.plotly
chart-studio integration into a separate package
Split off the functionality in plotly.plotly
into a separate package called chart_studio
. This will make it easier for people to understand that you can use plotly.py totally offline and without an account. Everything in the plotly
package would be offline, and the chart_studio integration is in the chart_studio
package.
Along with the change to make figures self-displaying and to move the html output to plotly.io
, this would mean that users would no longer need to figure out the online
/offline
distinction. The plotly.py package just is offline, and you don't need to say offline anywhere to use it that way.
Documentation
If not before, documentation should be updated to remove use of iplot
and allow figures to display themselves in "offline" mode (plotly/documentation#992)
Also, before the v3 to v4 jump we should finish working out how to version the documentation so that the version 3 docs can remain active alongside the version 4 docs.