From a6c10eb3cfd7532e7127932773d8226a3ab7d5b3 Mon Sep 17 00:00:00 2001 From: Erik Ritter Date: Mon, 22 Jul 2019 13:53:09 -0700 Subject: [PATCH] fix: responsive y-axis on stacked charts (#141) --- .../src/NVD3Vis.js | 19 +-- .../legacy-preset-chart-nvd3/Area/Stories.jsx | 114 ++++++++++++++++++ 2 files changed, 116 insertions(+), 17 deletions(-) diff --git a/superset-frontend/temporary_superset_ui/superset-ui/plugins/superset-ui-plugins/packages/superset-ui-legacy-preset-chart-nvd3/src/NVD3Vis.js b/superset-frontend/temporary_superset_ui/superset-ui/plugins/superset-ui-plugins/packages/superset-ui-legacy-preset-chart-nvd3/src/NVD3Vis.js index ad645817c2..e9a52ba5fe 100644 --- a/superset-frontend/temporary_superset_ui/superset-ui/plugins/superset-ui-plugins/packages/superset-ui-legacy-preset-chart-nvd3/src/NVD3Vis.js +++ b/superset-frontend/temporary_superset_ui/superset-ui/plugins/superset-ui-plugins/packages/superset-ui-legacy-preset-chart-nvd3/src/NVD3Vis.js @@ -50,7 +50,6 @@ import { setAxisShowMaxMin, stringifyTimeRange, wrapTooltip, - computeYDomain, } from './utils'; import { annotationLayerType, @@ -613,24 +612,10 @@ function nvd3Vis(element, props) { const [min, max] = yAxisBounds; const hasCustomMin = isDefined(min) && !Number.isNaN(min); const hasCustomMax = isDefined(max) && !Number.isNaN(max); - let yMin; - let yMax; if (hasCustomMin && hasCustomMax) { - yMin = min; - yMax = max; - } else { - let [trueMin, trueMax] = [0, 1]; - // These viz types can be stacked - if (isVizTypes(['area', 'bar', 'dist_bar'])) { - [trueMin, trueMax] = chart.yAxis.scale().domain(); - } else { - [trueMin, trueMax] = computeYDomain(data); - } - yMin = hasCustomMin ? min : trueMin; - yMax = hasCustomMax ? max : trueMax; + chart.yDomain([min, max]); + chart.clipEdge(true); } - chart.yDomain([yMin, yMax]); - chart.clipEdge(true); } // align yAxis1 and yAxis2 ticks diff --git a/superset-frontend/temporary_superset_ui/superset-ui/plugins/superset-ui-plugins/packages/superset-ui-plugins-demo/storybook/stories/legacy-preset-chart-nvd3/Area/Stories.jsx b/superset-frontend/temporary_superset_ui/superset-ui/plugins/superset-ui-plugins/packages/superset-ui-plugins-demo/storybook/stories/legacy-preset-chart-nvd3/Area/Stories.jsx index c9ae33ed57..63b9f57bdb 100644 --- a/superset-frontend/temporary_superset_ui/superset-ui/plugins/superset-ui-plugins/packages/superset-ui-plugins-demo/storybook/stories/legacy-preset-chart-nvd3/Area/Stories.jsx +++ b/superset-frontend/temporary_superset_ui/superset-ui/plugins/superset-ui-plugins/packages/superset-ui-plugins-demo/storybook/stories/legacy-preset-chart-nvd3/Area/Stories.jsx @@ -42,6 +42,82 @@ export default [ storyName: 'Stacked', storyPath: 'legacy-|preset-chart-nvd3|AreaChartPlugin', }, + { + renderStory: () => ( + + ), + storyName: 'Stacked with yAxisBounds', + storyPath: 'legacy-|preset-chart-nvd3|AreaChartPlugin', + }, + { + renderStory: () => ( + + ), + storyName: 'Stacked with yAxisBounds min only', + storyPath: 'legacy-|preset-chart-nvd3|AreaChartPlugin', + }, { renderStory: () => ( ( + + ), + storyName: 'Controls Shown', + storyPath: 'legacy-|preset-chart-nvd3|AreaChartPlugin', + }, ];