add combine config for metrics in pivot table (#3086)

* add combine config for metrics in pivot table

* change method to stack/unstack

* update backendSync
This commit is contained in:
Rogan 2017-07-29 05:16:38 +08:00 committed by Maxime Beauchemin
parent 1e325d9645
commit b58cfbcb91
4 changed files with 18 additions and 1 deletions

View File

@ -750,6 +750,12 @@
"default": false,
"description": "Sort bars by x labels."
},
"combine_metric": {
"type": "CheckboxControl",
"label": "Combine Metrics",
"default": false,
"description": "Display metrics side by side within each column, as opposed to each column being displayed side by side for each metric."
},
"show_controls": {
"type": "CheckboxControl",
"label": "Extra Controls",

View File

@ -249,6 +249,14 @@ export const controls = {
description: 'Sort bars by x labels.',
},
combine_metric: {
type: 'CheckboxControl',
label: 'Combine Metrics',
default: false,
description: 'Display metrics side by side within each column, as ' +
'opposed to each column being displayed side by side for each metric.',
},
show_controls: {
type: 'CheckboxControl',
label: 'Extra Controls',

View File

@ -337,7 +337,7 @@ export const visTypes = {
controlSetRows: [
['groupby', 'columns'],
['metrics', 'pandas_aggfunc'],
['number_format', 'pivot_margins'],
['number_format', 'combine_metric', 'pivot_margins'],
],
},
],

View File

@ -402,6 +402,9 @@ class PivotTableViz(BaseViz):
aggfunc=self.form_data.get('pandas_aggfunc'),
margins=self.form_data.get('pivot_margins'),
)
# Display metrics side by side with each column
if self.form_data.get('combine_metric'):
df = df.stack(0).unstack()
return dict(
columns=list(df.columns),
html=df.to_html(