From 459cb701fb2140fcce8b97a1839a9511574375c7 Mon Sep 17 00:00:00 2001 From: Beto Dealmeida Date: Mon, 21 May 2018 17:47:21 -0700 Subject: [PATCH] Visualization for multiple line charts (#4819) * Initial test * Save * Working version * Use since/until from payload * Option to prefix metric name * Rename LineMultiLayer to MultiLineViz * Add more styles * Explicit nulls * Add more x controls * Refactor to reuse nvd3_vis * Fix x ticks * Fix spacing * Fix for druid datasource * Rename file * Small fixes and cleanup * Fix margins * Add proper thumbnails * Align yaxis1 and yaxis2 ticks * Improve code * Trigger tests * Move file * Small fixes plus example * Fix unit test * Remove SQL and Filter sections --- .../images/viz_thumbnails/line_multi.png | Bin 0 -> 54363 bytes .../viz_thumbnails_large/line_multi.png | Bin 0 -> 116138 bytes .../components/ExploreViewContainer.jsx | 7 +- .../components/controls/DatasourceControl.jsx | 2 +- superset/assets/src/explore/controls.jsx | 43 ++++++++ superset/assets/src/explore/visTypes.js | 99 +++++++++++++++++- superset/assets/src/visualizations/index.js | 3 + .../assets/src/visualizations/line_multi.js | 74 +++++++++++++ .../assets/src/visualizations/nvd3_vis.js | 70 +++++++++++-- superset/cli.py | 3 + superset/data/__init__.py | 28 +++++ superset/viz.py | 29 +++++ tests/core_tests.py | 2 +- 13 files changed, 342 insertions(+), 18 deletions(-) create mode 100644 superset/assets/images/viz_thumbnails/line_multi.png create mode 100644 superset/assets/images/viz_thumbnails_large/line_multi.png create mode 100644 superset/assets/src/visualizations/line_multi.js diff --git a/superset/assets/images/viz_thumbnails/line_multi.png b/superset/assets/images/viz_thumbnails/line_multi.png new file mode 100644 index 0000000000000000000000000000000000000000..f776bb847b48cf845fb9807213841756398aca0d GIT binary patch literal 54363 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 literal 0 HcmV?d00001 diff --git a/superset/assets/src/explore/components/ExploreViewContainer.jsx b/superset/assets/src/explore/components/ExploreViewContainer.jsx index c8d7acd82ef50..bc875d4886f68 100644 --- a/superset/assets/src/explore/components/ExploreViewContainer.jsx +++ b/superset/assets/src/explore/components/ExploreViewContainer.jsx @@ -74,7 +74,12 @@ class ExploreViewContainer extends React.Component { this.props.actions.resetControls(); this.props.actions.triggerQuery(true, this.props.chart.chartKey); } - if (np.controls.datasource.value !== this.props.controls.datasource.value) { + if ( + np.controls.datasource && ( + this.props.controls.datasource == null || + np.controls.datasource.value !== this.props.controls.datasource.value + ) + ) { this.props.actions.fetchDatasourceMetadata(np.form_data.datasource, true); } diff --git a/superset/assets/src/explore/components/controls/DatasourceControl.jsx b/superset/assets/src/explore/components/controls/DatasourceControl.jsx index 0256aacc38c9c..404ba5e3296e5 100644 --- a/superset/assets/src/explore/components/controls/DatasourceControl.jsx +++ b/superset/assets/src/explore/components/controls/DatasourceControl.jsx @@ -18,7 +18,7 @@ const propTypes = { name: PropTypes.string.isRequired, onChange: PropTypes.func, value: PropTypes.string.isRequired, - datasource: PropTypes.object.isRequired, + datasource: PropTypes.object, }; const defaultProps = { diff --git a/superset/assets/src/explore/controls.jsx b/superset/assets/src/explore/controls.jsx index 66d563b343e68..710d6b4c35680 100644 --- a/superset/assets/src/explore/controls.jsx +++ b/superset/assets/src/explore/controls.jsx @@ -2068,6 +2068,49 @@ export const controls = { description: t('The width of the lines'), }, + line_charts: { + type: 'SelectAsyncControl', + multi: true, + label: t('Line charts'), + validators: [v.nonEmpty], + default: [], + description: t('Pick a set of line charts to layer on top of one another'), + dataEndpoint: '/sliceasync/api/read?_flt_0_viz_type=line&_flt_7_viz_type=line_multi', + placeholder: t('Select charts'), + onAsyncErrorMessage: t('Error while fetching charts'), + mutator: (data) => { + if (!data || !data.result) { + return []; + } + return data.result.map(o => ({ value: o.id, label: o.slice_name })); + }, + }, + + line_charts_2: { + type: 'SelectAsyncControl', + multi: true, + label: t('Right Axis chart(s)'), + validators: [], + default: [], + description: t('Choose one or more charts for right axis'), + dataEndpoint: '/sliceasync/api/read?_flt_0_viz_type=line&_flt_7_viz_type=line_multi', + placeholder: t('Select charts'), + onAsyncErrorMessage: t('Error while fetching charts'), + mutator: (data) => { + if (!data || !data.result) { + return []; + } + return data.result.map(o => ({ value: o.id, label: o.slice_name })); + }, + }, + + prefix_metric_with_slice_name: { + type: 'CheckboxControl', + label: t('Prefix metric name with slice name'), + default: false, + renderTrigger: true, + }, + reverse_long_lat: { type: 'CheckboxControl', label: t('Reverse Lat & Long'), diff --git a/superset/assets/src/explore/visTypes.js b/superset/assets/src/explore/visTypes.js index 35e49d4587b60..1ad5c895e6f18 100644 --- a/superset/assets/src/explore/visTypes.js +++ b/superset/assets/src/explore/visTypes.js @@ -225,6 +225,82 @@ export const visTypes = { }, }, + line_multi: { + label: t('Time Series - Multiple Line Charts'), + showOnExplore: true, + requiresTime: true, + controlPanelSections: [ + { + label: t('Chart Options'), + expanded: true, + controlSetRows: [ + ['color_scheme'], + ['prefix_metric_with_slice_name', null], + ['show_legend', 'show_markers'], + ['line_interpolation', null], + ], + }, + { + label: t('X Axis'), + expanded: true, + controlSetRows: [ + ['x_axis_label', 'bottom_margin'], + ['x_ticks_layout', 'x_axis_format'], + ['x_axis_showminmax', null], + ], + }, + { + label: t('Y Axis 1'), + expanded: true, + controlSetRows: [ + ['line_charts', 'y_axis_format'], + ], + }, + { + label: t('Y Axis 2'), + expanded: false, + controlSetRows: [ + ['line_charts_2', 'y_axis_2_format'], + ], + }, + sections.annotations, + ], + controlOverrides: { + line_charts: { + label: t('Left Axis chart(s)'), + description: t('Choose one or more charts for left axis'), + }, + y_axis_format: { + label: t('Left Axis Format'), + }, + x_axis_format: { + choices: D3_TIME_FORMAT_OPTIONS, + default: 'smart_date', + }, + }, + sectionOverrides: { + sqlClause: [], + filters: [[]], + datasourceAndVizType: { + label: t('Chart Type'), + controlSetRows: [ + ['viz_type'], + ['slice_id', 'cache_timeout'], + ], + }, + sqlaTimeSeries: { + controlSetRows: [ + ['since', 'until'], + ], + }, + druidTimeSeries: { + controlSetRows: [ + ['since', 'until'], + ], + }, + }, + }, + time_pivot: { label: t('Time Series - Periodicity Pivot'), showOnExplore: true, @@ -1731,11 +1807,26 @@ function adhocFilterEnabled(viz) { export function sectionsToRender(vizType, datasourceType) { const viz = visTypes[vizType]; + + const sectionsCopy = { ...sections }; + if (viz.sectionOverrides) { + Object.entries(viz.sectionOverrides).forEach(([section, overrides]) => { + if (typeof overrides === 'object' && overrides.constructor === Object) { + sectionsCopy[section] = { + ...sectionsCopy[section], + ...overrides, + }; + } else { + sectionsCopy[section] = overrides; + } + }); + } + return [].concat( - sections.datasourceAndVizType, - datasourceType === 'table' ? sections.sqlaTimeSeries : sections.druidTimeSeries, + sectionsCopy.datasourceAndVizType, + datasourceType === 'table' ? sectionsCopy.sqlaTimeSeries : sectionsCopy.druidTimeSeries, viz.controlPanelSections, - !adhocFilterEnabled(viz) && (datasourceType === 'table' ? sections.sqlClause : []), - !adhocFilterEnabled(viz) && (datasourceType === 'table' ? sections.filters[0] : sections.filters), + !adhocFilterEnabled(viz) && (datasourceType === 'table' ? sectionsCopy.sqlClause : []), + !adhocFilterEnabled(viz) && (datasourceType === 'table' ? sectionsCopy.filters[0] : sectionsCopy.filters), ).filter(section => section); } diff --git a/superset/assets/src/visualizations/index.js b/superset/assets/src/visualizations/index.js index 5477c337b1e03..77cc0ea8d49df 100644 --- a/superset/assets/src/visualizations/index.js +++ b/superset/assets/src/visualizations/index.js @@ -1,5 +1,6 @@ /* eslint-disable global-require */ import nvd3Vis from './nvd3_vis'; +import lineMulti from './line_multi'; // You ***should*** use these to reference viz_types in code export const VIZ_TYPES = { @@ -21,6 +22,7 @@ export const VIZ_TYPES = { horizon: 'horizon', iframe: 'iframe', line: 'line', + line_multi: 'line_multi', mapbox: 'mapbox', markup: 'markup', para: 'para', @@ -71,6 +73,7 @@ const vizMap = { [VIZ_TYPES.horizon]: require('./horizon.js'), [VIZ_TYPES.iframe]: require('./iframe.js'), [VIZ_TYPES.line]: nvd3Vis, + [VIZ_TYPES.line_multi]: lineMulti, [VIZ_TYPES.time_pivot]: nvd3Vis, [VIZ_TYPES.mapbox]: require('./mapbox.jsx'), [VIZ_TYPES.markup]: require('./markup.js'), diff --git a/superset/assets/src/visualizations/line_multi.js b/superset/assets/src/visualizations/line_multi.js new file mode 100644 index 0000000000000..c164686ce5202 --- /dev/null +++ b/superset/assets/src/visualizations/line_multi.js @@ -0,0 +1,74 @@ +import nvd3Vis from './nvd3_vis'; +import { getExploreLongUrl } from '../explore/exploreUtils'; + + +export default function lineMulti(slice, payload) { + /* + * Show multiple line charts + * + * This visualization works by fetching the data from each of the saved + * charts, building the payload data and passing it along to nvd3Vis. + */ + const fd = slice.formData; + + // fetch data from all the charts + const promises = []; + const subslices = [ + ...payload.data.slices.axis1.map(subslice => [1, subslice]), + ...payload.data.slices.axis2.map(subslice => [2, subslice]), + ]; + subslices.forEach(([yAxis, subslice]) => { + let filters = subslice.form_data.filters || []; + filters.concat(fd.filters); + if (fd.extra_filters) { + filters = filters.concat(fd.extra_filters); + } + const fdCopy = { + ...subslice.form_data, + filters, + since: fd.since, + until: fd.until, + }; + const url = getExploreLongUrl(fdCopy, 'json'); + promises.push(new Promise((resolve, reject) => { + d3.json(url, (error, response) => { + if (error) { + reject(error); + } else { + const data = []; + response.data.forEach((datum) => { + let key = datum.key; + if (fd.prefix_metric_with_slice_name) { + key = subslice.slice_name + ': ' + key; + } + data.push({ key, values: datum.values, type: fdCopy.viz_type, yAxis }); + }); + resolve(data); + } + }); + })); + }); + + Promise.all(promises).then((data) => { + const payloadCopy = { ...payload }; + payloadCopy.data = [].concat(...data); + + // add null values at the edges to fix multiChart bug when series with + // different x values use different y axes + if (fd.line_charts.length && fd.line_charts_2.length) { + let minx = Infinity; + let maxx = -Infinity; + payloadCopy.data.forEach((datum) => { + minx = Math.min(minx, ...datum.values.map(v => v.x)); + maxx = Math.max(maxx, ...datum.values.map(v => v.x)); + }); + // add null values at the edges + payloadCopy.data.forEach((datum) => { + datum.values.push({ x: minx, y: null }); + datum.values.push({ x: maxx, y: null }); + }); + } + + nvd3Vis(slice, payloadCopy); + }); +} diff --git a/superset/assets/src/visualizations/nvd3_vis.js b/superset/assets/src/visualizations/nvd3_vis.js index 068b8a0b55693..c2c74a0b7eb1f 100644 --- a/superset/assets/src/visualizations/nvd3_vis.js +++ b/superset/assets/src/visualizations/nvd3_vis.js @@ -32,6 +32,16 @@ const BREAKPOINTS = { small: 340, }; +const TIMESERIES_VIZ_TYPES = [ + 'line', + 'dual_line', + 'line_multi', + 'area', + 'compare', + 'bar', + 'time_pivot', +]; + const addTotalBarValues = function (svg, chart, data, stacked, axisFormat) { const format = d3.format(axisFormat || '.3s'); const countSeriesDisplayed = data.length; @@ -149,8 +159,7 @@ export default function nvd3Vis(slice, payload) { svg = d3.select(slice.selector).append('svg'); } let height = slice.height(); - const isTimeSeries = [ - 'line', 'dual_line', 'area', 'compare', 'bar', 'time_pivot'].indexOf(vizType) >= 0; + const isTimeSeries = TIMESERIES_VIZ_TYPES.indexOf(vizType) >= 0; // Handling xAxis ticks settings let xLabelRotation = 0; @@ -202,6 +211,11 @@ export default function nvd3Vis(slice, payload) { chart.interpolate('linear'); break; + case 'line_multi': + chart = nv.models.multiChart(); + chart.interpolate(fd.line_interpolation); + break; + case 'bar': chart = nv.models.multiBarChart() .showControls(fd.show_controls) @@ -461,13 +475,19 @@ export default function nvd3Vis(slice, payload) { } } - if (vizType === 'dual_line') { + if (['dual_line', 'line_multi'].indexOf(vizType) >= 0) { const yAxisFormatter1 = d3.format(fd.y_axis_format); const yAxisFormatter2 = d3.format(fd.y_axis_2_format); chart.yAxis1.tickFormat(yAxisFormatter1); chart.yAxis2.tickFormat(yAxisFormatter2); - customizeToolTip(chart, xAxisFormatter, [yAxisFormatter1, yAxisFormatter2]); - chart.showLegend(width > BREAKPOINTS.small); + const yAxisFormatters = data.map(datum => ( + datum.yAxis === 1 ? yAxisFormatter1 : yAxisFormatter2)); + customizeToolTip(chart, xAxisFormatter, yAxisFormatters); + if (vizType === 'dual_line') { + chart.showLegend(width > BREAKPOINTS.small); + } else { + chart.showLegend(fd.show_legend); + } } chart.height(height); slice.container.css('height', height + 'px'); @@ -479,6 +499,31 @@ export default function nvd3Vis(slice, payload) { .attr('width', width) .call(chart); + // align yAxis1 and yAxis2 ticks + if (['dual_line', 'line_multi'].indexOf(vizType) >= 0) { + const count = chart.yAxis1.ticks(); + const ticks1 = chart.yAxis1.scale().domain(chart.yAxis1.domain()).nice(count).ticks(count); + const ticks2 = chart.yAxis2.scale().domain(chart.yAxis2.domain()).nice(count).ticks(count); + + // match number of ticks in both axes + const difference = ticks1.length - ticks2.length; + if (ticks1.length && ticks2.length && difference !== 0) { + const smallest = difference < 0 ? ticks1 : ticks2; + const delta = smallest[1] - smallest[0]; + for (let i = 0; i < Math.abs(difference); i++) { + if (i % 2 === 0) { + smallest.unshift(smallest[0] - delta); + } else { + smallest.push(smallest[smallest.length - 1] + delta); + } + } + chart.yDomain1([ticks1[0], ticks1[ticks1.length - 1]]); + chart.yDomain2([ticks2[0], ticks2[ticks2.length - 1]]); + chart.yAxis1.tickValues(ticks1); + chart.yAxis2.tickValues(ticks2); + } + } + if (fd.show_markers) { svg.selectAll('.nv-point') .style('stroke-opacity', 1) @@ -516,12 +561,9 @@ export default function nvd3Vis(slice, payload) { margins.bottom = 40; } - if (vizType === 'dual_line') { + if (['dual_line', 'line_multi'].indexOf(vizType) >= 0) { const maxYAxis2LabelWidth = getMaxLabelSize(slice.container, 'nv-y2'); - // use y axis width if it's wider than axis width/height - if (maxYAxis2LabelWidth > maxXAxisLabelHeight) { - margins.right = maxYAxis2LabelWidth + marginPad; - } + margins.right = maxYAxis2LabelWidth + marginPad; } if (fd.bottom_margin && fd.bottom_margin !== 'auto') { margins.bottom = parseInt(fd.bottom_margin, 10); @@ -600,7 +642,13 @@ export default function nvd3Vis(slice, payload) { } else { xMin = chart.xAxis.scale().domain()[0].valueOf(); xMax = chart.xAxis.scale().domain()[1].valueOf(); - xScale = chart.xScale ? chart.xScale() : d3.scale.linear(); + if (chart.xScale) { + xScale = chart.xScale(); + } else if (chart.xAxis.scale) { + xScale = chart.xAxis.scale(); + } else { + xScale = d3.scale.linear(); + } } if (xScale && xScale.clamp) { xScale.clamp(true); diff --git a/superset/cli.py b/superset/cli.py index d31e0033fbe52..a304664f8e558 100755 --- a/superset/cli.py +++ b/superset/cli.py @@ -186,6 +186,9 @@ def load_examples(load_test_data): print('Loading [BART lines]') data.load_bart_lines() + print('Loading [Multi Line]') + data.load_multi_line() + if load_test_data: print('Loading [Unicode test data]') data.load_unicode_test_data() diff --git a/superset/data/__init__.py b/superset/data/__init__.py index d3d7da86417c0..8451b95631c15 100644 --- a/superset/data/__init__.py +++ b/superset/data/__init__.py @@ -1864,3 +1864,31 @@ def load_bart_lines(): db.session.merge(tbl) db.session.commit() tbl.fetch_metadata() + + +def load_multi_line(): + load_world_bank_health_n_pop() + load_birth_names() + ids = [ + row.id for row in + db.session.query(Slice).filter( + Slice.slice_name.in_(['Growth Rate', 'Trends'])) + ] + + slc = Slice( + datasource_type='table', # not true, but needed + datasource_id=1, # cannot be empty + slice_name="Multi Line", + viz_type='line_multi', + params=json.dumps({ + "slice_name": "Multi Line", + "viz_type": "line_multi", + "line_charts": [ids[0]], + "line_charts_2": [ids[1]], + "since": "1960-01-01", + "prefix_metric_with_slice_name": True, + }), + ) + + misc_dash_slices.append(slc.slice_name) + merge_slice(slc) diff --git a/superset/viz.py b/superset/viz.py index 39d3411456a2d..1236dd85d1236 100644 --- a/superset/viz.py +++ b/superset/viz.py @@ -1269,6 +1269,35 @@ def get_data(self, df): return chart_data +class MultiLineViz(NVD3Viz): + + """Pile on multiple line charts""" + + viz_type = 'line_multi' + verbose_name = _('Time Series - Multiple Line Charts') + + is_timeseries = True + + def query_obj(self): + return None + + def get_data(self, df): + fd = self.form_data + # Late imports to avoid circular import issues + from superset.models.core import Slice + from superset import db + slice_ids1 = fd.get('line_charts') + slices1 = db.session.query(Slice).filter(Slice.id.in_(slice_ids1)).all() + slice_ids2 = fd.get('line_charts_2') + slices2 = db.session.query(Slice).filter(Slice.id.in_(slice_ids2)).all() + return { + 'slices': { + 'axis1': [slc.data for slc in slices1], + 'axis2': [slc.data for slc in slices2], + }, + } + + class NVD3DualLineViz(NVD3Viz): """A rich line chart with dual axis""" diff --git a/tests/core_tests.py b/tests/core_tests.py index 4b0fc461805cc..c454c008495d1 100644 --- a/tests/core_tests.py +++ b/tests/core_tests.py @@ -370,7 +370,7 @@ def test_warm_up_cache(self): data = self.get_json_resp( '/superset/warm_up_cache?table_name=energy_usage&db_name=main') - assert len(data) == 3 + assert len(data) == 4 def test_shortner(self): self.login(username='admin')