This is an automated email from the ASF dual-hosted git repository. maximebeauchemin pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/incubator-superset.git
The following commit(s) were added to refs/heads/master by this push: new 4c4b6c4 Minor improvements to Histogram viz (#6391) 4c4b6c4 is described below commit 4c4b6c41a1ee0c2f4172208389b616d666b0ea1d Author: Maxime Beauchemin <maximebeauche...@gmail.com> AuthorDate: Mon Nov 19 14:01:20 2018 -0800 Minor improvements to Histogram viz (#6391) * Minor improvements to Histogram viz * prevent legend overflow (spill) by simply hiding it * legend title only includes metric name when necessary * control validator asking forcing at least one numeric column to be selected * Removing print() --- .../assets/src/explore/controlPanels/Histogram.js | 2 ++ .../src/visualizations/Histogram/Histogram.css | 3 +++ .../src/visualizations/Histogram/Histogram.jsx | 1 + superset/viz.py | 20 +++++++++++++------- 4 files changed, 19 insertions(+), 7 deletions(-) diff --git a/superset/assets/src/explore/controlPanels/Histogram.js b/superset/assets/src/explore/controlPanels/Histogram.js index 5289614..186dda2 100644 --- a/superset/assets/src/explore/controlPanels/Histogram.js +++ b/superset/assets/src/explore/controlPanels/Histogram.js @@ -1,4 +1,5 @@ import { t } from '@superset-ui/translation'; +import { nonEmpty } from '../validators'; export default { controlPanelSections: [ @@ -29,6 +30,7 @@ export default { label: t('Numeric Columns'), description: t('Select the numeric columns to draw the histogram'), multi: true, + validators: [nonEmpty], }, link_length: { label: t('No of Bins'), diff --git a/superset/assets/src/visualizations/Histogram/Histogram.css b/superset/assets/src/visualizations/Histogram/Histogram.css new file mode 100644 index 0000000..28b7d70 --- /dev/null +++ b/superset/assets/src/visualizations/Histogram/Histogram.css @@ -0,0 +1,3 @@ +.histogram { + overflow: hidden; +} diff --git a/superset/assets/src/visualizations/Histogram/Histogram.jsx b/superset/assets/src/visualizations/Histogram/Histogram.jsx index 8414830..2b54519 100644 --- a/superset/assets/src/visualizations/Histogram/Histogram.jsx +++ b/superset/assets/src/visualizations/Histogram/Histogram.jsx @@ -6,6 +6,7 @@ import { LegendOrdinal } from '@vx/legend'; import { scaleOrdinal } from '@vx/scale'; import { CategoricalColorNamespace } from '@superset-ui/color'; import WithLegend from '../WithLegend'; +import './Histogram.css'; const propTypes = { className: PropTypes.string, diff --git a/superset/viz.py b/superset/viz.py index 068a70d..e3e891a 100644 --- a/superset/viz.py +++ b/superset/viz.py @@ -1467,6 +1467,16 @@ class HistogramViz(BaseViz): d['groupby'] = [] return d + def labelify(self, keys, column): + if isinstance(keys, str): + keys = (keys,) + # removing undesirable characters + labels = [re.sub(r'\W+', r'_', k) for k in keys] + if len(self.columns) > 1 or not self.groupby: + # Only show numeric column in label if there are many + labels = [column] + labels + return '__'.join(labels) + def get_data(self, df): """Returns the chart data""" chart_data = [] @@ -1475,14 +1485,10 @@ class HistogramViz(BaseViz): else: groups = [((), df)] for keys, data in groups: - if isinstance(keys, str): - keys = (keys,) - # removing undesirable characters - keys = [re.sub(r'\W+', r'_', k) for k in keys] chart_data.extend([{ - 'key': '__'.join([c] + keys), - 'values': data[c].tolist()} - for c in self.columns]) + 'key': self.labelify(keys, column), + 'values': data[column].tolist()} + for column in self.columns]) return chart_data