Skip to content

Version 4 discussion #1420

Closed
Closed
@jonmmease

Description

@jonmmease

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

https://github.com/plotly/px/blob/610910fd5f167de2482b01753db13cd0bd01c171/plotly_express/_px.py#L22-L33

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.

cc @nicolaskruchten @jackparmer @chriddyp

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions