junlincc opened a new issue #14472: URL: https://github.com/apache/superset/issues/14472
Note: This is 3/3 of a greater proposed effort in Data Visualization Enhancement, Reorganization and Revamp **Background** As of today, Superset has grown from a hackathon project to a full-fledged BI tool with over 50 out-of-the-box visualization plugins offered. Users appreciate Superset for providing a variety of visualization options, though the organic growth of the product throughout the years has led to increasing difficulty in navigating in the gallery page, and creating visualizations efficiently. **Goal** Posting 3 SIPs in related areas, and the shared end goal of all SIP65-67 is to improve the time-to-value in creating meaningful charts in Superset. - Less disorganized and stand alone chart types - Cleaner Gallery modal and control layout - More powerful charts! ### Problem 3 Maintenance of legacy charts During the last few rounds of chart audits, we realized that more than two thirds of the existing viz plug-ins have issues, functional or cosmetic, with some more critical than others. Libraries like NVD3 that we used for years may no longer fulfill our increasing enhancement needs. Many original contributors of customized charts are no longer active in the project. Without adequate documentation and proper knowledge transfer, maintaining customized legacy charts has also become harder. On the premise of ensuring that users can still achieve the same charting goals, we will deprecate those which are too difficult to maintain and replace them with a better option, for a more strategic long term investment. ### Proposed Solutions for problem 3 Enhance, replace and deprecate Solution: We come up with plan based on multiple chart audits, user feedback, chart usage and condition, and the core committer’s observation. 1. Functionalities we plan to add to each chart, 2. Plug-ins and libraries that we no longer support 3. Plug-ins that we are removing from Superset Gallery. There are different ways to approach deprecating charts, and each has its pros and cons: a. _Burry the plugin behind a "legacy", "experimental" or "deprecated" category_ Pros: Minimal engineering effort, no change in ownership, least impact to all users Cons: Interaction with available broken charts leads to unpleasant UX b. _Plugin off by default, new superset environments won't show the viz unless it's explicitly switch on by an admin_ Pros: Viz is retained and hidden, better UX Cons: Moderate impact on admin users and to releases c._moving the code out of our repo(s), offer for people to load as a dynamic plugin_ Pros: Improve Superset stability in general Cons: High engineering effort, a mature dynamic plugin system and UI solution are need, implementation takes longer d. fully deprecate, drop the code and offer no path forward Pros: Minimal engineering effort Cons: Impact small amount of users heavily <p><a href="https://api.gh-polls.com/poll/01F4WE30GAW8X1QRCRBK3Q2X00/a./vote"><img src="https://api.gh-polls.com/poll/01F4WE30GAW8X1QRCRBK3Q2X00/a." alt=""></a> <a href="https://api.gh-polls.com/poll/01F4WE30GAW8X1QRCRBK3Q2X00/b./vote"><img src="https://api.gh-polls.com/poll/01F4WE30GAW8X1QRCRBK3Q2X00/b." alt=""></a> <a href="https://api.gh-polls.com/poll/01F4WE30GAW8X1QRCRBK3Q2X00/c./vote"><img src="https://api.gh-polls.com/poll/01F4WE30GAW8X1QRCRBK3Q2X00/c." alt=""></a> <a href="https://api.gh-polls.com/poll/01F4WE30GAW8X1QRCRBK3Q2X00/d./vote"><img src="https://api.gh-polls.com/poll/01F4WE30GAW8X1QRCRBK3Q2X00/d." alt=""></a> <a href="https://api.gh-polls.com/poll/01F4WE30GAW8X1QRCRBK3Q2X00/implement%20different%20solutions%20in%20phases.%20e.g.%20a-%3Ec/vote"><img src="https://api.gh-polls.com/poll/01F4WE30GAW8X1QRCRBK3Q2X00/implement%20different%20solutions%20in%20phases.%20e.g.%20a-%3Ec" alt=""></a></p> Chart | Condition | Usage | Library | Extensibility | Proposed Solution -- | -- | -- | -- | -- | -- Line Chart | Stable | Very High | NVD3 | Poor | Migrate to Echarts(Line)Add dynamic control and non temporal X-axis support Bar Chart | Stable | Very High | NVD3 | Poor | Migrate to Echarts(Bar)Add dynamic control and non temporal X-axis support Time-Series Bar Chart | Stable | Medium | NVD3 | Poor | Migrate to Echarts(Bar)Integrate with Bar Chart after its Echarts migration Area Chart | Stable | High | NVD3 | Poor | Migrate to Echarts(Stream)Add dynamic control and non temporal X-axis support Histogram | Stable | Medium | NVD3 | Poor | Migrate to Echarts; Integrate with Bar chart after Echarts migrationAdd control to convert from Bar to Histogram; both could have separate entrypoint as well as in-place chart-type switch Sunburst Chart | Stable | Medium | Custom | Poor | Migrate to Echarts(Sunburst) Treemap | Unstable | Medium | NVD3 | Poor | Migrate to Echarts(Treemap) Sankey Diagram | Stable | Low | Custom | Poor | Migrate to Echarts(Sankey) Heatmap | Unstable | Medium | NVD3? | Poor | Migrate to Echarts(Heatmap) Calendar Heatmap | Unstable | Low | Custom | Poor | Migrate to Echarts(Heatmap)Add control to support Calendar Heatmap in Heatmap after migration; both have separate entrypoint as well as in-place chart-type switch Bubble Chart | Stable | Low | NVD3 | Poor | Migrate to Echarts(Scatter)Add control to set Size and Color in Echarts Scatter Plot; both could have separate entrypoint as well as in-place chart-type switch World Map | Stable | Medium | Custom | OK | Migrate to Echarts(Map) Nightingale Rose Chart | Stable | Medium | Custom | OK | Migrate to Echarts(Nightingale), both could have separate entrypoint as well as in-place chart-type switch Chord Diagram | Stable | Low | Custom | OK | Migrate to Echarts(Chord) Bullet Chart | Unstable | Low | NVD3 | Poor | Migrate to Echarts(Gague) and remove from the gallery Time-series Chart | Stable | High | Echarts | Good | Break down into separate chart types. and time series analytic functionality will be added to the line, bar, scatter, step etc. Table | Improving | Very High | Custom | OK | Enhance and share the same entry point with Pivot Table, both could have separate entrypoint as well as in-place chart-type switch Pivot table | Migrating | High | Custom | Poor | Migrate to React-pivottable.js. both could have separate entrypoint as well as in-place chart-type switch Dual Line Chart | Unstable | Low | Custom | OK | Move to Echarts(combo) and remove it from the galleryBe a variation of Multi Y-axis combo chart; Deprecate Pie Chart | Stable | Very High | Echarts | Good | Stabilize and enhance Box Plot | Stable | Medium | Echarts | Good | Stabilize and enhance Graph Chart | Stable | Low | Echarts | Good | Stabilize and enhance Word Cloud | Stable | Medium | Custom | OK | Stabilize and enhance Big Number | Stable | Very High | Custom | OK | Enhance and combine, add dynamic control for trendline option BigNumber w Trendline | Stable | Very High | Custom | OK | Enhance and combine, same entry point as BigNumber MapBox | Unstable | Medium | Custom | OK | Stabilize Deck.gl Scatterplot(2D) | Unstable | Medium | Custom | OK | Group under the same category, each display as stand-alone chart type within the 2D Deck.gl category. Deck.gl Screen Grid(2D) | Unstable | Low | Custom | OK Deck.gl Geojson(2D) | Unstable | Low | Custom | Poor Deck.gl Path(2D) | Unstable | Low | Custom | OK Deck.gl Multiple Layers(2D) | Unstable | Very Low | Custom | Poor Deck.gl Arc(2D) | Unstable | Very Low | Custom | OK Deck.gl Polygon(3D) | Unstable | Low | Custom | OK | Group under the same category, each display as stand alone chart type within the 3D Deck.gl category. Deck.gl Grid(3D) | Unstable | Low | Custom | OK Deck.gl 3D Hexagon(3D) | Unstable | Low | Custom | OK Time-series Percentage Change | Unstable | Very Low | Custom | Poor | Add a control option to Echarts Line chart when temporal column is selected as X-axis Time-series Table | Stable | Medium | Custom | Poor | Move behind feature flag as it, volunteer chart maintainer is needed Partition Chart | Unstable | Very Low | Custom | Poor | Move behind feature flag as it, volunteer chart maintainer is needed Horizon Chart | Unstable | Very Low | Custom | Poor | Move behind feature flag as it, volunteer chart maintainer is needed EventFlow | Broken | Very Low | Custom | OK | Move behind feature flag as it, volunteer chart maintainer is needed Pair t-test Table | Broken | Very Low | Custom | Poor | Move behind feature flag as it, volunteer chart maintainer is needed Parallel Coordinates | Stable | Very Low | Custom | Poor | Move behind feature flag as it, volunteer chart maintainer is needed Time-series Period Pivot | Broken | Very Low | NVD2 | Poor | Remove Multi Line Charts | Stable | Low | NVD3 | Poor | Remove, replaced by new Echarts combination chart Filterbox | Stable | Very High | Custom | Poor | Migrate to native filter & Deprecate | | | | | -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
