Minor fixes to sunburst (#4349)

* Minor fixes to sunburst

closes https://github.com/apache/incubator-superset/issues/4340

* nit
This commit is contained in:
Maxime Beauchemin 2018-02-09 14:27:22 -08:00 committed by GitHub
parent 54d387598d
commit 1769804ffd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 17 additions and 18 deletions

View File

@ -1112,9 +1112,10 @@ export const visTypes = {
},
secondary_metric: {
label: t('Secondary Metric'),
description: t('This secondary metric is used to ' +
default: null,
description: t('[optional] this secondary metric is used to ' +
'define the color as a ratio against the primary metric. ' +
'If the two metrics match, color is mapped level groups'),
'When omitted, the color is categorical and based on labels'),
},
groupby: {
label: t('Hierarchy'),

View File

@ -347,7 +347,7 @@ function sunburstVis(slice, payload) {
let ext;
const fd = slice.formData;
if (fd.metric !== fd.secondary_metric) {
if (fd.metric !== fd.secondary_metric && fd.secondary_metric) {
colorByCategory = false;
ext = d3.extent(nodes, d => d.m2 / d.m1);
colorScale = d3.scale.linear()

View File

@ -1407,24 +1407,22 @@ class SunburstViz(BaseViz):
'@<a href="https://bl.ocks.org/kerryrodden/7090426">bl.ocks.org</a>')
def get_data(self, df):
# if m1 == m2 duplicate the metric column
cols = self.form_data.get('groupby')
metric = self.form_data.get('metric')
secondary_metric = self.form_data.get('secondary_metric')
if metric == secondary_metric:
ndf = df
ndf.columns = [cols + ['m1', 'm2']]
else:
cols += [
self.form_data['metric'], self.form_data['secondary_metric']]
ndf = df[cols]
return json.loads(ndf.to_json(orient='values')) # TODO fix this nonsense
fd = self.form_data
cols = fd.get('groupby')
metric = fd.get('metric')
secondary_metric = fd.get('secondary_metric')
if metric == secondary_metric or secondary_metric is None:
df.columns = cols + ['m1']
df['m2'] = df['m1']
return json.loads(df.to_json(orient='values'))
def query_obj(self):
qry = super(SunburstViz, self).query_obj()
qry['metrics'] = [
self.form_data['metric'], self.form_data['secondary_metric']]
fd = self.form_data
qry['metrics'] = [fd['metric']]
secondary_metric = fd.get('secondary_metric')
if secondary_metric and secondary_metric != fd['metric']:
qry['metrics'].append(secondary_metric)
return qry