From a47fe9f1cab3cef80860c2840262c72f438d1305 Mon Sep 17 00:00:00 2001 From: Dominik Moritz Date: Sat, 26 Dec 2020 15:59:31 +0100 Subject: [PATCH] feat: stack area, bar, and arc marks by default (#7098) Co-authored-by: GitHub Actions Bot --- examples/compiled/arc_ordinal_theta.vg.json | 17 ++- examples/compiled/area_gradient.vg.json | 28 ++++- examples/compiled/area_overlay.vg.json | 54 ++++++-- examples/compiled/bar.vg.json | 14 ++- .../compiled/bar_aggregate_transform.vg.json | 17 ++- .../compiled/bar_argmax_transform.vg.json | 26 +++- .../bar_axis_orient_signal_future.vg.json | 14 ++- .../compiled/bar_color_disabled_scale.vg.json | 14 ++- examples/compiled/bar_column_fold.vg.json | 14 ++- examples/compiled/bar_column_pivot.vg.json | 14 ++- examples/compiled/bar_corner_radius_end.svg | 2 +- .../compiled/bar_corner_radius_end.vg.json | 77 +++++++++--- .../compiled/bar_custom_sort_full.vg.json | 14 ++- .../compiled/bar_custom_sort_partial.vg.json | 14 ++- .../compiled/bar_custom_time_domain.vg.json | 14 ++- .../bar_default_tooltip_title_null.vg.json | 14 ++- examples/compiled/bar_filter_calc.vg.json | 14 ++- examples/compiled/bar_fit.vg.json | 14 ++- examples/compiled/bar_negative.vg.json | 14 ++- examples/compiled/bar_params.svg | 2 +- examples/compiled/bar_params.vg.json | 77 +++++++++--- examples/compiled/bar_title.vg.json | 14 ++- examples/compiled/bar_title_start.vg.json | 14 ++- examples/compiled/bar_tooltip.vg.json | 14 ++- examples/compiled/bar_tooltip_multi.vg.json | 14 ++- examples/compiled/bar_tooltip_title.vg.json | 14 ++- examples/compiled/facet_bullet.vg.json | 115 +++++++++++++++--- examples/compiled/facet_grid_bar.vg.json | 14 ++- .../interactive_bar_select_highlight.vg.json | 14 ++- .../interactive_dashboard_europe_pop.vg.json | 53 ++++++-- .../interactive_overview_detail.vg.json | 64 ++++++++-- .../joinaggregate_mean_difference.vg.json | 15 ++- ...naggregate_mean_difference_by_year.vg.json | 15 ++- .../joinaggregate_percent_of_total.vg.json | 17 ++- .../compiled/layer_bar_annotations.vg.json | 15 ++- examples/compiled/layer_bar_labels.vg.json | 41 +++++-- .../compiled/layer_bar_labels_style.vg.json | 44 +++++-- examples/compiled/layer_bar_line.vg.json | 15 ++- .../compiled/layer_bar_line_union.vg.json | 15 ++- examples/compiled/trellis_area_seattle.png | Bin 69467 -> 69356 bytes examples/compiled/trellis_area_seattle.svg | 2 +- .../compiled/trellis_area_seattle.vg.json | 27 ++-- .../compiled/window_percent_of_total.vg.json | 17 ++- examples/compiled/window_top_k.vg.json | 14 ++- examples/specs/layer_bar_labels.vl.json | 4 +- .../area_gradient_normalized.vl.json | 2 +- .../area_overlay_normalized.vl.json | 4 +- .../layer_bar_labels_normalized.vl.json | 14 ++- examples/specs/trellis_area_seattle.vl.json | 2 + src/compile/mark/mark.ts | 17 ++- src/stack.ts | 5 +- test/compile/mark/mark.test.ts | 18 ++- test/normalize/pathoverlay.test.ts | 8 +- test/stack.test.ts | 19 ++- 54 files changed, 910 insertions(+), 218 deletions(-) diff --git a/examples/compiled/arc_ordinal_theta.vg.json b/examples/compiled/arc_ordinal_theta.vg.json index eda82aec99..b1e44cd834 100644 --- a/examples/compiled/arc_ordinal_theta.vg.json +++ b/examples/compiled/arc_ordinal_theta.vg.json @@ -23,6 +23,14 @@ "name": "data_0", "source": "source_0", "transform": [ + { + "type": "stack", + "groupby": ["dir"], + "field": "strength", + "sort": {"field": [], "order": []}, + "as": ["strength_start", "strength_end"], + "offset": "zero" + }, { "type": "filter", "expr": "isValid(datum[\"strength\"]) && isFinite(+datum[\"strength\"])" @@ -44,8 +52,8 @@ }, "x": {"signal": "width", "mult": 0.5}, "y": {"signal": "height", "mult": 0.5}, - "outerRadius": {"scale": "radius", "field": "strength"}, - "innerRadius": {"scale": "radius", "value": 0}, + "outerRadius": {"scale": "radius", "field": "strength_end"}, + "innerRadius": {"scale": "radius", "field": "strength_start"}, "startAngle": {"scale": "theta", "field": "dir"}, "endAngle": { "scale": "theta", @@ -66,7 +74,10 @@ { "name": "radius", "type": "linear", - "domain": {"data": "data_0", "field": "strength"}, + "domain": { + "data": "data_0", + "fields": ["strength_start", "strength_end"] + }, "range": [0, {"signal": "min(width,height)/2"}], "zero": true }, diff --git a/examples/compiled/area_gradient.vg.json b/examples/compiled/area_gradient.vg.json index 6c9e22dc1d..ad480764d8 100644 --- a/examples/compiled/area_gradient.vg.json +++ b/examples/compiled/area_gradient.vg.json @@ -11,7 +11,25 @@ "name": "source_0", "url": "data/stocks.csv", "format": {"type": "csv", "parse": {"date": "date"}}, - "transform": [{"type": "filter", "expr": "datum.symbol==='GOOG'"}] + "transform": [ + {"type": "filter", "expr": "datum.symbol==='GOOG'"}, + { + "type": "impute", + "field": "price", + "groupby": [], + "key": "date", + "method": "value", + "value": 0 + }, + { + "type": "stack", + "groupby": ["date"], + "field": "price", + "sort": {"field": [], "order": []}, + "as": ["price_start", "price_end"], + "offset": "zero" + } + ] } ], "marks": [ @@ -42,8 +60,8 @@ "signal": "\"date: \" + (timeFormat(datum[\"date\"], '%b %d, %Y')) + \"; price: \" + (format(datum[\"price\"], \"\"))" }, "x": {"scale": "x", "field": "date"}, - "y": {"scale": "y", "field": "price"}, - "y2": {"scale": "y", "value": 0}, + "y": {"scale": "y", "field": "price_end"}, + "y2": {"scale": "y", "field": "price_start"}, "defined": { "signal": "isValid(datum[\"date\"]) && isFinite(+datum[\"date\"]) && isValid(datum[\"price\"]) && isFinite(+datum[\"price\"])" } @@ -63,7 +81,7 @@ "signal": "\"date: \" + (timeFormat(datum[\"date\"], '%b %d, %Y')) + \"; price: \" + (format(datum[\"price\"], \"\"))" }, "x": {"scale": "x", "field": "date"}, - "y": {"scale": "y", "field": "price"}, + "y": {"scale": "y", "field": "price_end"}, "defined": { "signal": "isValid(datum[\"date\"]) && isFinite(+datum[\"date\"]) && isValid(datum[\"price\"]) && isFinite(+datum[\"price\"])" } @@ -81,7 +99,7 @@ { "name": "y", "type": "linear", - "domain": {"data": "source_0", "field": "price"}, + "domain": {"data": "source_0", "fields": ["price_start", "price_end"]}, "range": [{"signal": "height"}, 0], "nice": true, "zero": true diff --git a/examples/compiled/area_overlay.vg.json b/examples/compiled/area_overlay.vg.json index 77f5607300..aec203dc4b 100644 --- a/examples/compiled/area_overlay.vg.json +++ b/examples/compiled/area_overlay.vg.json @@ -17,6 +17,36 @@ "name": "data_0", "source": "source_0", "transform": [ + { + "type": "impute", + "field": "price", + "groupby": [], + "key": "date", + "method": "value", + "value": 0 + }, + { + "type": "stack", + "groupby": ["date"], + "field": "price", + "sort": {"field": [], "order": []}, + "as": ["price_start", "price_end"], + "offset": "zero" + } + ] + }, + { + "name": "data_1", + "source": "source_0", + "transform": [ + { + "type": "stack", + "groupby": ["date"], + "field": "price", + "sort": {"field": [], "order": []}, + "as": ["price_start", "price_end"], + "offset": "zero" + }, { "type": "filter", "expr": "(isDate(datum[\"date\"]) || (isValid(datum[\"date\"]) && isFinite(+datum[\"date\"]))) && isValid(datum[\"price\"]) && isFinite(+datum[\"price\"])" @@ -30,7 +60,7 @@ "type": "area", "style": ["area"], "sort": {"field": "datum[\"date\"]"}, - "from": {"data": "source_0"}, + "from": {"data": "data_0"}, "encode": { "update": { "opacity": {"value": 0.7}, @@ -40,8 +70,8 @@ "signal": "\"date: \" + (timeFormat(datum[\"date\"], '%b %d, %Y')) + \"; price: \" + (format(datum[\"price\"], \"\"))" }, "x": {"scale": "x", "field": "date"}, - "y": {"scale": "y", "field": "price"}, - "y2": {"scale": "y", "value": 0}, + "y": {"scale": "y", "field": "price_end"}, + "y2": {"scale": "y", "field": "price_start"}, "defined": { "signal": "isValid(datum[\"date\"]) && isFinite(+datum[\"date\"]) && isValid(datum[\"price\"]) && isFinite(+datum[\"price\"])" } @@ -53,7 +83,7 @@ "type": "line", "style": ["line"], "sort": {"field": "datum[\"date\"]"}, - "from": {"data": "source_0"}, + "from": {"data": "data_0"}, "encode": { "update": { "stroke": {"value": "#4c78a8"}, @@ -61,7 +91,7 @@ "signal": "\"date: \" + (timeFormat(datum[\"date\"], '%b %d, %Y')) + \"; price: \" + (format(datum[\"price\"], \"\"))" }, "x": {"scale": "x", "field": "date"}, - "y": {"scale": "y", "field": "price"}, + "y": {"scale": "y", "field": "price_end"}, "defined": { "signal": "isValid(datum[\"date\"]) && isFinite(+datum[\"date\"]) && isValid(datum[\"price\"]) && isFinite(+datum[\"price\"])" } @@ -72,7 +102,7 @@ "name": "layer_2_marks", "type": "symbol", "style": ["point"], - "from": {"data": "data_0"}, + "from": {"data": "data_1"}, "encode": { "update": { "opacity": {"value": 1}, @@ -82,7 +112,7 @@ "signal": "\"date: \" + (timeFormat(datum[\"date\"], '%b %d, %Y')) + \"; price: \" + (format(datum[\"price\"], \"\"))" }, "x": {"scale": "x", "field": "date"}, - "y": {"scale": "y", "field": "price"} + "y": {"scale": "y", "field": "price_end"} } } } @@ -93,8 +123,8 @@ "type": "time", "domain": { "fields": [ - {"data": "source_0", "field": "date"}, - {"data": "data_0", "field": "date"} + {"data": "data_0", "field": "date"}, + {"data": "data_1", "field": "date"} ] }, "range": [0, {"signal": "width"}] @@ -104,8 +134,10 @@ "type": "linear", "domain": { "fields": [ - {"data": "source_0", "field": "price"}, - {"data": "data_0", "field": "price"} + {"data": "data_0", "field": "price_start"}, + {"data": "data_0", "field": "price_end"}, + {"data": "data_1", "field": "price_start"}, + {"data": "data_1", "field": "price_end"} ] }, "range": [{"signal": "height"}, 0], diff --git a/examples/compiled/bar.vg.json b/examples/compiled/bar.vg.json index 2840f2d51e..cf7d1e2bbc 100644 --- a/examples/compiled/bar.vg.json +++ b/examples/compiled/bar.vg.json @@ -24,6 +24,14 @@ "name": "data_0", "source": "source_0", "transform": [ + { + "type": "stack", + "groupby": ["a"], + "field": "b", + "sort": {"field": [], "order": []}, + "as": ["b_start", "b_end"], + "offset": "zero" + }, { "type": "filter", "expr": "isValid(datum[\"b\"]) && isFinite(+datum[\"b\"])" @@ -53,8 +61,8 @@ }, "x": {"scale": "x", "field": "a"}, "width": {"scale": "x", "band": 1}, - "y": {"scale": "y", "field": "b"}, - "y2": {"scale": "y", "value": 0} + "y": {"scale": "y", "field": "b_end"}, + "y2": {"scale": "y", "field": "b_start"} } } } @@ -71,7 +79,7 @@ { "name": "y", "type": "linear", - "domain": {"data": "data_0", "field": "b"}, + "domain": {"data": "data_0", "fields": ["b_start", "b_end"]}, "range": [{"signal": "height"}, 0], "nice": true, "zero": true diff --git a/examples/compiled/bar_aggregate_transform.vg.json b/examples/compiled/bar_aggregate_transform.vg.json index 22f7da095b..47ed9786bf 100644 --- a/examples/compiled/bar_aggregate_transform.vg.json +++ b/examples/compiled/bar_aggregate_transform.vg.json @@ -17,6 +17,14 @@ "fields": ["Acceleration"], "as": ["mean_acc"] }, + { + "type": "stack", + "groupby": ["Cylinders"], + "field": "mean_acc", + "sort": {"field": [], "order": []}, + "as": ["mean_acc_start", "mean_acc_end"], + "offset": "zero" + }, { "type": "filter", "expr": "isValid(datum[\"mean_acc\"]) && isFinite(+datum[\"mean_acc\"])" @@ -46,8 +54,8 @@ }, "x": {"scale": "x", "field": "Cylinders"}, "width": {"scale": "x", "band": 1}, - "y": {"scale": "y", "field": "mean_acc"}, - "y2": {"scale": "y", "value": 0} + "y": {"scale": "y", "field": "mean_acc_end"}, + "y2": {"scale": "y", "field": "mean_acc_start"} } } } @@ -64,7 +72,10 @@ { "name": "y", "type": "linear", - "domain": {"data": "source_0", "field": "mean_acc"}, + "domain": { + "data": "source_0", + "fields": ["mean_acc_start", "mean_acc_end"] + }, "range": [{"signal": "height"}, 0], "nice": true, "zero": true diff --git a/examples/compiled/bar_argmax_transform.vg.json b/examples/compiled/bar_argmax_transform.vg.json index d985a8d0a1..87a4afbed9 100644 --- a/examples/compiled/bar_argmax_transform.vg.json +++ b/examples/compiled/bar_argmax_transform.vg.json @@ -23,6 +23,17 @@ "expr": "datum[\"argmax_US_Gross\"] && datum[\"argmax_US_Gross\"][\"Production Budget\"]", "as": "argmax_US_Gross.Production Budget" }, + { + "type": "stack", + "groupby": ["Major Genre"], + "field": "argmax_US_Gross\\.Production Budget", + "sort": {"field": [], "order": []}, + "as": [ + "argmax_US_Gross.Production Budget._start", + "argmax_US_Gross.Production Budget._end" + ], + "offset": "zero" + }, { "type": "filter", "expr": "isValid(datum[\"argmax_US_Gross.Production Budget\"]) && isFinite(+datum[\"argmax_US_Gross.Production Budget\"])" @@ -50,8 +61,14 @@ "description": { "signal": "\"argmax_US_Gross['Production Budget']: \" + (format(datum[\"argmax_US_Gross.Production Budget\"], \"\")) + \"; Major Genre: \" + (isValid(datum[\"Major Genre\"]) ? datum[\"Major Genre\"] : \"\"+datum[\"Major Genre\"])" }, - "x": {"scale": "x", "field": "argmax_US_Gross\\.Production Budget"}, - "x2": {"scale": "x", "value": 0}, + "x": { + "scale": "x", + "field": "argmax_US_Gross\\.Production Budget\\._end" + }, + "x2": { + "scale": "x", + "field": "argmax_US_Gross\\.Production Budget\\._start" + }, "y": {"scale": "y", "field": "Major Genre"}, "height": {"scale": "y", "band": 1} } @@ -64,7 +81,10 @@ "type": "linear", "domain": { "data": "source_0", - "field": "argmax_US_Gross\\.Production Budget" + "fields": [ + "argmax_US_Gross\\.Production Budget\\._start", + "argmax_US_Gross\\.Production Budget\\._end" + ] }, "range": [0, {"signal": "width"}], "nice": true, diff --git a/examples/compiled/bar_axis_orient_signal_future.vg.json b/examples/compiled/bar_axis_orient_signal_future.vg.json index 5631559ac5..552dcbeb94 100644 --- a/examples/compiled/bar_axis_orient_signal_future.vg.json +++ b/examples/compiled/bar_axis_orient_signal_future.vg.json @@ -25,6 +25,14 @@ "name": "data_0", "source": "source_0", "transform": [ + { + "type": "stack", + "groupby": ["a"], + "field": "b", + "sort": {"field": [], "order": []}, + "as": ["b_start", "b_end"], + "offset": "zero" + }, { "type": "filter", "expr": "isValid(datum[\"b\"]) && isFinite(+datum[\"b\"])" @@ -54,8 +62,8 @@ }, "x": {"scale": "x", "field": "a"}, "width": {"scale": "x", "band": 1}, - "y": {"scale": "y", "field": "b"}, - "y2": {"scale": "y", "value": 0} + "y": {"scale": "y", "field": "b_end"}, + "y2": {"scale": "y", "field": "b_start"} } } } @@ -72,7 +80,7 @@ { "name": "y", "type": "linear", - "domain": {"data": "data_0", "field": "b"}, + "domain": {"data": "data_0", "fields": ["b_start", "b_end"]}, "range": [{"signal": "height"}, 0], "nice": true, "zero": true diff --git a/examples/compiled/bar_color_disabled_scale.vg.json b/examples/compiled/bar_color_disabled_scale.vg.json index c63876568c..68c3a29ad3 100644 --- a/examples/compiled/bar_color_disabled_scale.vg.json +++ b/examples/compiled/bar_color_disabled_scale.vg.json @@ -18,6 +18,14 @@ "name": "data_0", "source": "source_0", "transform": [ + { + "type": "stack", + "groupby": ["color"], + "field": "b", + "sort": {"field": [], "order": []}, + "as": ["b_start", "b_end"], + "offset": "zero" + }, { "type": "filter", "expr": "isValid(datum[\"b\"]) && isFinite(+datum[\"b\"])" @@ -47,8 +55,8 @@ }, "x": {"scale": "x", "field": "color"}, "width": {"scale": "x", "band": 1}, - "y": {"scale": "y", "field": "b"}, - "y2": {"scale": "y", "value": 0} + "y": {"scale": "y", "field": "b_end"}, + "y2": {"scale": "y", "field": "b_start"} } } } @@ -65,7 +73,7 @@ { "name": "y", "type": "linear", - "domain": {"data": "data_0", "field": "b"}, + "domain": {"data": "data_0", "fields": ["b_start", "b_end"]}, "range": [{"signal": "height"}, 0], "nice": true, "zero": true diff --git a/examples/compiled/bar_column_fold.vg.json b/examples/compiled/bar_column_fold.vg.json index 2eec0646da..f197b99d3d 100644 --- a/examples/compiled/bar_column_fold.vg.json +++ b/examples/compiled/bar_column_fold.vg.json @@ -15,6 +15,14 @@ "source": "source_0", "transform": [ {"type": "fold", "fields": ["gold", "silver"], "as": ["key", "value"]}, + { + "type": "stack", + "groupby": ["country", "key"], + "field": "value", + "sort": {"field": [], "order": []}, + "as": ["value_start", "value_end"], + "offset": "zero" + }, { "type": "filter", "expr": "isValid(datum[\"value\"]) && isFinite(+datum[\"value\"])" @@ -131,8 +139,8 @@ }, "x": {"scale": "x", "field": "country"}, "width": {"scale": "x", "band": 1}, - "y": {"scale": "y", "field": "value"}, - "y2": {"scale": "y", "value": 0} + "y": {"scale": "y", "field": "value_end"}, + "y2": {"scale": "y", "field": "value_start"} } } } @@ -167,7 +175,7 @@ { "name": "y", "type": "linear", - "domain": {"data": "data_0", "field": "value"}, + "domain": {"data": "data_0", "fields": ["value_start", "value_end"]}, "range": [{"signal": "child_height"}, 0], "nice": true, "zero": true diff --git a/examples/compiled/bar_column_pivot.vg.json b/examples/compiled/bar_column_pivot.vg.json index ad450b0681..3e69682af4 100644 --- a/examples/compiled/bar_column_pivot.vg.json +++ b/examples/compiled/bar_column_pivot.vg.json @@ -29,6 +29,14 @@ "value": "count", "groupby": ["country"] }, + { + "type": "stack", + "groupby": ["country"], + "field": "gold", + "sort": {"field": [], "order": []}, + "as": ["gold_start", "gold_end"], + "offset": "zero" + }, { "type": "filter", "expr": "isValid(datum[\"gold\"]) && isFinite(+datum[\"gold\"])" @@ -58,8 +66,8 @@ }, "x": {"scale": "x", "field": "country"}, "width": {"scale": "x", "band": 1}, - "y": {"scale": "y", "field": "gold"}, - "y2": {"scale": "y", "value": 0} + "y": {"scale": "y", "field": "gold_end"}, + "y2": {"scale": "y", "field": "gold_start"} } } } @@ -76,7 +84,7 @@ { "name": "y", "type": "linear", - "domain": {"data": "data_0", "field": "gold"}, + "domain": {"data": "data_0", "fields": ["gold_start", "gold_end"]}, "range": [{"signal": "height"}, 0], "nice": true, "zero": true diff --git a/examples/compiled/bar_corner_radius_end.svg b/examples/compiled/bar_corner_radius_end.svg index 1b6fd00d71..ec6bc8107a 100644 --- a/examples/compiled/bar_corner_radius_end.svg +++ b/examples/compiled/bar_corner_radius_end.svg @@ -1 +1 @@ -ABCDEFGHIa020406080100b \ No newline at end of file +ABCDEFGHIa020406080100b \ No newline at end of file diff --git a/examples/compiled/bar_corner_radius_end.vg.json b/examples/compiled/bar_corner_radius_end.vg.json index 14dc2f0740..64a6015a4f 100644 --- a/examples/compiled/bar_corner_radius_end.vg.json +++ b/examples/compiled/bar_corner_radius_end.vg.json @@ -24,6 +24,14 @@ "name": "data_0", "source": "source_0", "transform": [ + { + "type": "stack", + "groupby": ["a"], + "field": "b", + "sort": {"field": [], "order": []}, + "as": ["b_start", "b_end"], + "offset": "zero" + }, { "type": "filter", "expr": "isValid(datum[\"b\"]) && isFinite(+datum[\"b\"])" @@ -40,25 +48,64 @@ ], "marks": [ { - "name": "marks", - "type": "rect", - "style": ["bar"], - "from": {"data": "data_0"}, + "type": "group", + "from": { + "facet": { + "data": "data_0", + "name": "stack_group_main", + "groupby": ["a"], + "aggregate": { + "fields": ["b_start", "b_start", "b_end", "b_end"], + "ops": ["min", "max", "min", "max"] + } + } + }, "encode": { "update": { - "cornerRadiusTopLeft": {"value": 4}, - "cornerRadiusTopRight": {"value": 4}, - "fill": {"value": "#4c78a8"}, - "ariaRoleDescription": {"value": "bar"}, - "description": { - "signal": "\"a: \" + (isValid(datum[\"a\"]) ? datum[\"a\"] : \"\"+datum[\"a\"]) + \"; b: \" + (format(datum[\"b\"], \"\"))" - }, "x": {"scale": "x", "field": "a"}, "width": {"scale": "x", "band": 1}, - "y": {"scale": "y", "field": "b"}, - "y2": {"scale": "y", "value": 0} + "y": { + "signal": "min(scale('y',datum[\"min_b_start\"]),scale('y',datum[\"max_b_start\"]),scale('y',datum[\"min_b_end\"]),scale('y',datum[\"max_b_end\"]))" + }, + "y2": { + "signal": "max(scale('y',datum[\"min_b_start\"]),scale('y',datum[\"max_b_start\"]),scale('y',datum[\"min_b_end\"]),scale('y',datum[\"max_b_end\"]))" + }, + "clip": {"value": true}, + "cornerRadiusTopLeft": {"value": 4}, + "cornerRadiusTopRight": {"value": 4} } - } + }, + "marks": [ + { + "type": "group", + "encode": { + "update": { + "y": {"field": {"group": "y"}, "mult": -1}, + "width": {"field": {"group": "width"}} + } + }, + "marks": [ + { + "name": "marks", + "type": "rect", + "style": ["bar"], + "from": {"data": "stack_group_main"}, + "encode": { + "update": { + "fill": {"value": "#4c78a8"}, + "ariaRoleDescription": {"value": "bar"}, + "description": { + "signal": "\"a: \" + (isValid(datum[\"a\"]) ? datum[\"a\"] : \"\"+datum[\"a\"]) + \"; b: \" + (format(datum[\"b\"], \"\"))" + }, + "width": {"field": {"group": "width"}}, + "y": {"scale": "y", "field": "b_end"}, + "y2": {"scale": "y", "field": "b_start"} + } + } + } + ] + } + ] } ], "scales": [ @@ -73,7 +120,7 @@ { "name": "y", "type": "linear", - "domain": {"data": "data_0", "field": "b"}, + "domain": {"data": "data_0", "fields": ["b_start", "b_end"]}, "range": [{"signal": "height"}, 0], "nice": true, "zero": true diff --git a/examples/compiled/bar_custom_sort_full.vg.json b/examples/compiled/bar_custom_sort_full.vg.json index be87e67c82..4cfa00cbdc 100644 --- a/examples/compiled/bar_custom_sort_full.vg.json +++ b/examples/compiled/bar_custom_sort_full.vg.json @@ -24,6 +24,14 @@ "name": "data_1", "source": "data_0", "transform": [ + { + "type": "stack", + "groupby": ["a"], + "field": "b", + "sort": {"field": [], "order": []}, + "as": ["b_start", "b_end"], + "offset": "zero" + }, { "type": "filter", "expr": "isValid(datum[\"b\"]) && isFinite(+datum[\"b\"])" @@ -53,8 +61,8 @@ }, "x": {"scale": "x", "field": "a"}, "width": {"scale": "x", "band": 1}, - "y": {"scale": "y", "field": "b"}, - "y2": {"scale": "y", "value": 0} + "y": {"scale": "y", "field": "b_end"}, + "y2": {"scale": "y", "field": "b_start"} } } } @@ -75,7 +83,7 @@ { "name": "y", "type": "linear", - "domain": {"data": "data_1", "field": "b"}, + "domain": {"data": "data_1", "fields": ["b_start", "b_end"]}, "range": [{"signal": "height"}, 0], "nice": true, "zero": true diff --git a/examples/compiled/bar_custom_sort_partial.vg.json b/examples/compiled/bar_custom_sort_partial.vg.json index 7a9c1c59e7..cc37703181 100644 --- a/examples/compiled/bar_custom_sort_partial.vg.json +++ b/examples/compiled/bar_custom_sort_partial.vg.json @@ -31,6 +31,14 @@ "name": "data_1", "source": "data_0", "transform": [ + { + "type": "stack", + "groupby": ["a"], + "field": "b", + "sort": {"field": [], "order": []}, + "as": ["b_start", "b_end"], + "offset": "zero" + }, { "type": "filter", "expr": "isValid(datum[\"b\"]) && isFinite(+datum[\"b\"])" @@ -60,8 +68,8 @@ }, "x": {"scale": "x", "field": "a"}, "width": {"scale": "x", "band": 1}, - "y": {"scale": "y", "field": "b"}, - "y2": {"scale": "y", "value": 0} + "y": {"scale": "y", "field": "b_end"}, + "y2": {"scale": "y", "field": "b_start"} } } } @@ -82,7 +90,7 @@ { "name": "y", "type": "linear", - "domain": {"data": "data_1", "field": "b"}, + "domain": {"data": "data_1", "fields": ["b_start", "b_end"]}, "range": [{"signal": "height"}, 0], "nice": true, "zero": true diff --git a/examples/compiled/bar_custom_time_domain.vg.json b/examples/compiled/bar_custom_time_domain.vg.json index 3b3a710947..fef5727456 100644 --- a/examples/compiled/bar_custom_time_domain.vg.json +++ b/examples/compiled/bar_custom_time_domain.vg.json @@ -26,6 +26,14 @@ "units": ["hours"], "as": ["hours_a", "hours_a_end"] }, + { + "type": "stack", + "groupby": ["hours_a"], + "field": "b", + "sort": {"field": [], "order": []}, + "as": ["b_start", "b_end"], + "offset": "zero" + }, { "type": "filter", "expr": "(isDate(datum[\"hours_a\"]) || (isValid(datum[\"hours_a\"]) && isFinite(+datum[\"hours_a\"]))) && isValid(datum[\"b\"]) && isFinite(+datum[\"b\"])" @@ -60,8 +68,8 @@ }, {"scale": "x", "field": "hours_a_end"} ], - "y": {"scale": "y", "field": "b"}, - "y2": {"scale": "y", "value": 0} + "y": {"scale": "y", "field": "b_end"}, + "y2": {"scale": "y", "field": "b_start"} } } } @@ -81,7 +89,7 @@ { "name": "y", "type": "linear", - "domain": {"data": "data_0", "field": "b"}, + "domain": {"data": "data_0", "fields": ["b_start", "b_end"]}, "range": [{"signal": "height"}, 0], "nice": true, "zero": true diff --git a/examples/compiled/bar_default_tooltip_title_null.vg.json b/examples/compiled/bar_default_tooltip_title_null.vg.json index 2be9384556..414e5a232d 100644 --- a/examples/compiled/bar_default_tooltip_title_null.vg.json +++ b/examples/compiled/bar_default_tooltip_title_null.vg.json @@ -24,6 +24,14 @@ "name": "data_0", "source": "source_0", "transform": [ + { + "type": "stack", + "groupby": ["a"], + "field": "b", + "sort": {"field": [], "order": []}, + "as": ["b_start", "b_end"], + "offset": "zero" + }, { "type": "filter", "expr": "isValid(datum[\"b\"]) && isFinite(+datum[\"b\"])" @@ -56,8 +64,8 @@ }, "x": {"scale": "x", "field": "a"}, "width": {"scale": "x", "band": 1}, - "y": {"scale": "y", "field": "b"}, - "y2": {"scale": "y", "value": 0} + "y": {"scale": "y", "field": "b_end"}, + "y2": {"scale": "y", "field": "b_start"} } } } @@ -74,7 +82,7 @@ { "name": "y", "type": "linear", - "domain": {"data": "data_0", "field": "b"}, + "domain": {"data": "data_0", "fields": ["b_start", "b_end"]}, "range": [{"signal": "height"}, 0], "nice": true, "zero": true diff --git a/examples/compiled/bar_filter_calc.vg.json b/examples/compiled/bar_filter_calc.vg.json index 57fa80f133..961077ae0d 100644 --- a/examples/compiled/bar_filter_calc.vg.json +++ b/examples/compiled/bar_filter_calc.vg.json @@ -26,6 +26,14 @@ "transform": [ {"type": "formula", "expr": "2*datum.b", "as": "b2"}, {"type": "filter", "expr": "datum.b2 > 60"}, + { + "type": "stack", + "groupby": ["a"], + "field": "b2", + "sort": {"field": [], "order": []}, + "as": ["b2_start", "b2_end"], + "offset": "zero" + }, { "type": "filter", "expr": "isValid(datum[\"b2\"]) && isFinite(+datum[\"b2\"])" @@ -55,8 +63,8 @@ }, "x": {"scale": "x", "field": "a"}, "width": {"scale": "x", "band": 1}, - "y": {"scale": "y", "field": "b2"}, - "y2": {"scale": "y", "value": 0} + "y": {"scale": "y", "field": "b2_end"}, + "y2": {"scale": "y", "field": "b2_start"} } } } @@ -73,7 +81,7 @@ { "name": "y", "type": "linear", - "domain": {"data": "data_0", "field": "b2"}, + "domain": {"data": "data_0", "fields": ["b2_start", "b2_end"]}, "range": [{"signal": "height"}, 0], "nice": true, "zero": true diff --git a/examples/compiled/bar_fit.vg.json b/examples/compiled/bar_fit.vg.json index c72e3e8817..6abf452be9 100644 --- a/examples/compiled/bar_fit.vg.json +++ b/examples/compiled/bar_fit.vg.json @@ -26,6 +26,14 @@ "name": "data_0", "source": "source_0", "transform": [ + { + "type": "stack", + "groupby": ["a"], + "field": "b", + "sort": {"field": [], "order": []}, + "as": ["b_start", "b_end"], + "offset": "zero" + }, { "type": "filter", "expr": "isValid(datum[\"b\"]) && isFinite(+datum[\"b\"])" @@ -48,8 +56,8 @@ }, "x": {"scale": "x", "field": "a"}, "width": {"scale": "x", "band": 1}, - "y": {"scale": "y", "field": "b"}, - "y2": {"scale": "y", "value": 0} + "y": {"scale": "y", "field": "b_end"}, + "y2": {"scale": "y", "field": "b_start"} } } } @@ -66,7 +74,7 @@ { "name": "y", "type": "linear", - "domain": {"data": "data_0", "field": "b"}, + "domain": {"data": "data_0", "fields": ["b_start", "b_end"]}, "range": [{"signal": "height"}, 0], "nice": true, "zero": true diff --git a/examples/compiled/bar_negative.vg.json b/examples/compiled/bar_negative.vg.json index ec64412589..8f9e76b9f9 100644 --- a/examples/compiled/bar_negative.vg.json +++ b/examples/compiled/bar_negative.vg.json @@ -24,6 +24,14 @@ "name": "data_0", "source": "source_0", "transform": [ + { + "type": "stack", + "groupby": ["a"], + "field": "b", + "sort": {"field": [], "order": []}, + "as": ["b_start", "b_end"], + "offset": "zero" + }, { "type": "filter", "expr": "isValid(datum[\"b\"]) && isFinite(+datum[\"b\"])" @@ -53,8 +61,8 @@ }, "x": {"scale": "x", "field": "a"}, "width": {"scale": "x", "band": 1}, - "y": {"scale": "y", "field": "b"}, - "y2": {"scale": "y", "value": 0} + "y": {"scale": "y", "field": "b_end"}, + "y2": {"scale": "y", "field": "b_start"} } } } @@ -71,7 +79,7 @@ { "name": "y", "type": "linear", - "domain": {"data": "data_0", "field": "b"}, + "domain": {"data": "data_0", "fields": ["b_start", "b_end"]}, "range": [{"signal": "height"}, 0], "nice": true, "zero": true diff --git a/examples/compiled/bar_params.svg b/examples/compiled/bar_params.svg index 9e458ba525..1fbef27891 100644 --- a/examples/compiled/bar_params.svg +++ b/examples/compiled/bar_params.svg @@ -1 +1 @@ -ABCDEFGHIa020406080100b \ No newline at end of file +ABCDEFGHIa020406080100b \ No newline at end of file diff --git a/examples/compiled/bar_params.vg.json b/examples/compiled/bar_params.vg.json index 69deed03e2..e34db33fa3 100644 --- a/examples/compiled/bar_params.vg.json +++ b/examples/compiled/bar_params.vg.json @@ -24,6 +24,14 @@ "name": "data_0", "source": "source_0", "transform": [ + { + "type": "stack", + "groupby": ["a"], + "field": "b", + "sort": {"field": [], "order": []}, + "as": ["b_start", "b_end"], + "offset": "zero" + }, { "type": "filter", "expr": "isValid(datum[\"b\"]) && isFinite(+datum[\"b\"])" @@ -50,26 +58,65 @@ ], "marks": [ { - "name": "marks", - "type": "rect", - "style": ["bar"], - "from": {"data": "data_0"}, + "type": "group", + "from": { + "facet": { + "data": "data_0", + "name": "stack_group_main", + "groupby": ["a"], + "aggregate": { + "fields": ["b_start", "b_start", "b_end", "b_end"], + "ops": ["min", "max", "min", "max"] + } + } + }, "encode": { "update": { + "x": {"scale": "x", "field": "a"}, + "width": {"scale": "x", "band": 1}, + "y": { + "signal": "min(scale('y',datum[\"min_b_start\"]),scale('y',datum[\"max_b_start\"]),scale('y',datum[\"min_b_end\"]),scale('y',datum[\"max_b_end\"]))" + }, + "y2": { + "signal": "max(scale('y',datum[\"min_b_start\"]),scale('y',datum[\"max_b_start\"]),scale('y',datum[\"min_b_end\"]),scale('y',datum[\"max_b_end\"]))" + }, + "clip": {"value": true}, "cornerRadius": {"signal": "cornerRadius"}, "cornerRadiusTopLeft": {"signal": "cornerRadiusEnd"}, - "cornerRadiusTopRight": {"signal": "cornerRadiusEnd"}, - "fill": {"value": "#4c78a8"}, - "ariaRoleDescription": {"value": "bar"}, - "description": { - "signal": "\"a: \" + (isValid(datum[\"a\"]) ? datum[\"a\"] : \"\"+datum[\"a\"]) + \"; b: \" + (format(datum[\"b\"], \"\"))" + "cornerRadiusTopRight": {"signal": "cornerRadiusEnd"} + } + }, + "marks": [ + { + "type": "group", + "encode": { + "update": { + "y": {"field": {"group": "y"}, "mult": -1}, + "width": {"field": {"group": "width"}} + } }, - "x": {"scale": "x", "field": "a"}, - "width": {"scale": "x", "band": 1}, - "y": {"scale": "y", "field": "b"}, - "y2": {"scale": "y", "value": 0} + "marks": [ + { + "name": "marks", + "type": "rect", + "style": ["bar"], + "from": {"data": "stack_group_main"}, + "encode": { + "update": { + "fill": {"value": "#4c78a8"}, + "ariaRoleDescription": {"value": "bar"}, + "description": { + "signal": "\"a: \" + (isValid(datum[\"a\"]) ? datum[\"a\"] : \"\"+datum[\"a\"]) + \"; b: \" + (format(datum[\"b\"], \"\"))" + }, + "width": {"field": {"group": "width"}}, + "y": {"scale": "y", "field": "b_end"}, + "y2": {"scale": "y", "field": "b_start"} + } + } + } + ] } - } + ] } ], "scales": [ @@ -84,7 +131,7 @@ { "name": "y", "type": "linear", - "domain": {"data": "data_0", "field": "b"}, + "domain": {"data": "data_0", "fields": ["b_start", "b_end"]}, "range": [{"signal": "height"}, 0], "nice": true, "zero": true diff --git a/examples/compiled/bar_title.vg.json b/examples/compiled/bar_title.vg.json index 61abeede99..cac465ad90 100644 --- a/examples/compiled/bar_title.vg.json +++ b/examples/compiled/bar_title.vg.json @@ -24,6 +24,14 @@ "name": "data_0", "source": "source_0", "transform": [ + { + "type": "stack", + "groupby": ["a"], + "field": "b", + "sort": {"field": [], "order": []}, + "as": ["b_start", "b_end"], + "offset": "zero" + }, { "type": "filter", "expr": "isValid(datum[\"b\"]) && isFinite(+datum[\"b\"])" @@ -53,8 +61,8 @@ }, "x": {"scale": "x", "field": "a"}, "width": {"scale": "x", "band": 1}, - "y": {"scale": "y", "field": "b"}, - "y2": {"scale": "y", "value": 0} + "y": {"scale": "y", "field": "b_end"}, + "y2": {"scale": "y", "field": "b_start"} } } } @@ -71,7 +79,7 @@ { "name": "y", "type": "linear", - "domain": {"data": "data_0", "field": "b"}, + "domain": {"data": "data_0", "fields": ["b_start", "b_end"]}, "range": [{"signal": "height"}, 0], "nice": true, "zero": true diff --git a/examples/compiled/bar_title_start.vg.json b/examples/compiled/bar_title_start.vg.json index 37ce30bca4..060cdc9c87 100644 --- a/examples/compiled/bar_title_start.vg.json +++ b/examples/compiled/bar_title_start.vg.json @@ -24,6 +24,14 @@ "name": "data_0", "source": "source_0", "transform": [ + { + "type": "stack", + "groupby": ["a"], + "field": "b", + "sort": {"field": [], "order": []}, + "as": ["b_start", "b_end"], + "offset": "zero" + }, { "type": "filter", "expr": "isValid(datum[\"b\"]) && isFinite(+datum[\"b\"])" @@ -53,8 +61,8 @@ }, "x": {"scale": "x", "field": "a"}, "width": {"scale": "x", "band": 1}, - "y": {"scale": "y", "field": "b"}, - "y2": {"scale": "y", "value": 0} + "y": {"scale": "y", "field": "b_end"}, + "y2": {"scale": "y", "field": "b_start"} } } } @@ -71,7 +79,7 @@ { "name": "y", "type": "linear", - "domain": {"data": "data_0", "field": "b"}, + "domain": {"data": "data_0", "fields": ["b_start", "b_end"]}, "range": [{"signal": "height"}, 0], "nice": true, "zero": true diff --git a/examples/compiled/bar_tooltip.vg.json b/examples/compiled/bar_tooltip.vg.json index 8d8747c756..2ab3ef1e59 100644 --- a/examples/compiled/bar_tooltip.vg.json +++ b/examples/compiled/bar_tooltip.vg.json @@ -24,6 +24,14 @@ "name": "data_0", "source": "source_0", "transform": [ + { + "type": "stack", + "groupby": ["a"], + "field": "b", + "sort": {"field": [], "order": []}, + "as": ["b_start", "b_end"], + "offset": "zero" + }, { "type": "filter", "expr": "isValid(datum[\"b\"]) && isFinite(+datum[\"b\"])" @@ -54,8 +62,8 @@ }, "x": {"scale": "x", "field": "a"}, "width": {"scale": "x", "band": 1}, - "y": {"scale": "y", "field": "b"}, - "y2": {"scale": "y", "value": 0} + "y": {"scale": "y", "field": "b_end"}, + "y2": {"scale": "y", "field": "b_start"} } } } @@ -72,7 +80,7 @@ { "name": "y", "type": "linear", - "domain": {"data": "data_0", "field": "b"}, + "domain": {"data": "data_0", "fields": ["b_start", "b_end"]}, "range": [{"signal": "height"}, 0], "nice": true, "zero": true diff --git a/examples/compiled/bar_tooltip_multi.vg.json b/examples/compiled/bar_tooltip_multi.vg.json index 369dfaf67d..a1b3f4e40a 100644 --- a/examples/compiled/bar_tooltip_multi.vg.json +++ b/examples/compiled/bar_tooltip_multi.vg.json @@ -23,6 +23,14 @@ "name": "data_0", "source": "source_0", "transform": [ + { + "type": "stack", + "groupby": ["a"], + "field": "b", + "sort": {"field": [], "order": []}, + "as": ["b_start", "b_end"], + "offset": "zero" + }, { "type": "filter", "expr": "isValid(datum[\"b\"]) && isFinite(+datum[\"b\"])" @@ -55,8 +63,8 @@ }, "x": {"scale": "x", "field": "a"}, "width": {"scale": "x", "band": 1}, - "y": {"scale": "y", "field": "b"}, - "y2": {"scale": "y", "value": 0} + "y": {"scale": "y", "field": "b_end"}, + "y2": {"scale": "y", "field": "b_start"} } } } @@ -73,7 +81,7 @@ { "name": "y", "type": "linear", - "domain": {"data": "data_0", "field": "b"}, + "domain": {"data": "data_0", "fields": ["b_start", "b_end"]}, "range": [{"signal": "height"}, 0], "nice": true, "zero": true diff --git a/examples/compiled/bar_tooltip_title.vg.json b/examples/compiled/bar_tooltip_title.vg.json index fc6e2d176d..78c257643f 100644 --- a/examples/compiled/bar_tooltip_title.vg.json +++ b/examples/compiled/bar_tooltip_title.vg.json @@ -23,6 +23,14 @@ "name": "data_0", "source": "source_0", "transform": [ + { + "type": "stack", + "groupby": ["a"], + "field": "b", + "sort": {"field": [], "order": []}, + "as": ["b_start", "b_end"], + "offset": "zero" + }, { "type": "filter", "expr": "isValid(datum[\"b\"]) && isFinite(+datum[\"b\"])" @@ -55,8 +63,8 @@ }, "x": {"scale": "x", "field": "a"}, "width": {"scale": "x", "band": 1}, - "y": {"scale": "y", "field": "b"}, - "y2": {"scale": "y", "value": 0} + "y": {"scale": "y", "field": "b_end"}, + "y2": {"scale": "y", "field": "b_start"} } } } @@ -73,7 +81,7 @@ { "name": "y", "type": "linear", - "domain": {"data": "data_0", "field": "b"}, + "domain": {"data": "data_0", "fields": ["b_start", "b_end"]}, "range": [{"signal": "height"}, 0], "nice": true, "zero": true diff --git a/examples/compiled/facet_bullet.vg.json b/examples/compiled/facet_bullet.vg.json index 465fd35351..1080a96e24 100644 --- a/examples/compiled/facet_bullet.vg.json +++ b/examples/compiled/facet_bullet.vg.json @@ -83,6 +83,14 @@ "name": "data_1", "source": "data_0", "transform": [ + { + "type": "stack", + "groupby": ["title"], + "field": "ranges\\.2", + "sort": {"field": [], "order": []}, + "as": ["ranges.2._start", "ranges.2._end"], + "offset": "zero" + }, { "type": "filter", "expr": "isValid(datum[\"ranges.2\"]) && isFinite(+datum[\"ranges.2\"])" @@ -93,6 +101,14 @@ "name": "data_2", "source": "data_0", "transform": [ + { + "type": "stack", + "groupby": ["title"], + "field": "ranges\\.1", + "sort": {"field": [], "order": []}, + "as": ["ranges.1._start", "ranges.1._end"], + "offset": "zero" + }, { "type": "filter", "expr": "isValid(datum[\"ranges.1\"]) && isFinite(+datum[\"ranges.1\"])" @@ -103,6 +119,14 @@ "name": "data_3", "source": "data_0", "transform": [ + { + "type": "stack", + "groupby": ["title"], + "field": "ranges\\.0", + "sort": {"field": [], "order": []}, + "as": ["ranges.0._start", "ranges.0._end"], + "offset": "zero" + }, { "type": "filter", "expr": "isValid(datum[\"ranges.0\"]) && isFinite(+datum[\"ranges.0\"])" @@ -113,6 +137,14 @@ "name": "data_4", "source": "data_0", "transform": [ + { + "type": "stack", + "groupby": ["title"], + "field": "measures\\.1", + "sort": {"field": [], "order": []}, + "as": ["measures.1._start", "measures.1._end"], + "offset": "zero" + }, { "type": "filter", "expr": "isValid(datum[\"measures.1\"]) && isFinite(+datum[\"measures.1\"])" @@ -123,6 +155,14 @@ "name": "data_5", "source": "data_0", "transform": [ + { + "type": "stack", + "groupby": ["title"], + "field": "measures\\.0", + "sort": {"field": [], "order": []}, + "as": ["measures.0._start", "measures.0._end"], + "offset": "zero" + }, { "type": "filter", "expr": "isValid(datum[\"measures.0\"]) && isFinite(+datum[\"measures.0\"])" @@ -184,6 +224,14 @@ "source": "facet", "name": "data_0", "transform": [ + { + "type": "stack", + "groupby": [], + "field": "ranges\\.2", + "sort": {"field": [], "order": []}, + "as": ["ranges.2._start", "ranges.2._end"], + "offset": "zero" + }, { "type": "filter", "expr": "isValid(datum[\"ranges.2\"]) && isFinite(+datum[\"ranges.2\"])" @@ -194,6 +242,14 @@ "source": "facet", "name": "data_1", "transform": [ + { + "type": "stack", + "groupby": [], + "field": "ranges\\.1", + "sort": {"field": [], "order": []}, + "as": ["ranges.1._start", "ranges.1._end"], + "offset": "zero" + }, { "type": "filter", "expr": "isValid(datum[\"ranges.1\"]) && isFinite(+datum[\"ranges.1\"])" @@ -204,6 +260,14 @@ "source": "facet", "name": "data_2", "transform": [ + { + "type": "stack", + "groupby": [], + "field": "ranges\\.0", + "sort": {"field": [], "order": []}, + "as": ["ranges.0._start", "ranges.0._end"], + "offset": "zero" + }, { "type": "filter", "expr": "isValid(datum[\"ranges.0\"]) && isFinite(+datum[\"ranges.0\"])" @@ -214,6 +278,14 @@ "source": "facet", "name": "data_3", "transform": [ + { + "type": "stack", + "groupby": [], + "field": "measures\\.1", + "sort": {"field": [], "order": []}, + "as": ["measures.1._start", "measures.1._end"], + "offset": "zero" + }, { "type": "filter", "expr": "isValid(datum[\"measures.1\"]) && isFinite(+datum[\"measures.1\"])" @@ -224,6 +296,14 @@ "source": "facet", "name": "data_4", "transform": [ + { + "type": "stack", + "groupby": [], + "field": "measures\\.0", + "sort": {"field": [], "order": []}, + "as": ["measures.0._start", "measures.0._end"], + "offset": "zero" + }, { "type": "filter", "expr": "isValid(datum[\"measures.0\"]) && isFinite(+datum[\"measures.0\"])" @@ -261,8 +341,8 @@ "description": { "signal": "\"ranges[2]: \" + (format(datum[\"ranges.2\"], \"\"))" }, - "x": {"scale": "child_x", "field": "ranges\\.2"}, - "x2": {"scale": "child_x", "value": 0}, + "x": {"scale": "child_x", "field": "ranges\\.2\\._end"}, + "x2": {"scale": "child_x", "field": "ranges\\.2\\._start"}, "yc": {"signal": "child_height", "mult": 0.5}, "height": {"value": 18} } @@ -280,8 +360,8 @@ "description": { "signal": "\"ranges[1]: \" + (format(datum[\"ranges.1\"], \"\"))" }, - "x": {"scale": "child_x", "field": "ranges\\.1"}, - "x2": {"scale": "child_x", "value": 0}, + "x": {"scale": "child_x", "field": "ranges\\.1\\._end"}, + "x2": {"scale": "child_x", "field": "ranges\\.1\\._start"}, "yc": {"signal": "child_height", "mult": 0.5}, "height": {"value": 18} } @@ -299,8 +379,8 @@ "description": { "signal": "\"ranges[0]: \" + (format(datum[\"ranges.0\"], \"\"))" }, - "x": {"scale": "child_x", "field": "ranges\\.0"}, - "x2": {"scale": "child_x", "value": 0}, + "x": {"scale": "child_x", "field": "ranges\\.0\\._end"}, + "x2": {"scale": "child_x", "field": "ranges\\.0\\._start"}, "yc": {"signal": "child_height", "mult": 0.5}, "height": {"value": 18} } @@ -318,8 +398,8 @@ "description": { "signal": "\"measures[1]: \" + (format(datum[\"measures.1\"], \"\"))" }, - "x": {"scale": "child_x", "field": "measures\\.1"}, - "x2": {"scale": "child_x", "value": 0}, + "x": {"scale": "child_x", "field": "measures\\.1\\._end"}, + "x2": {"scale": "child_x", "field": "measures\\.1\\._start"}, "yc": {"signal": "child_height", "mult": 0.5}, "height": {"value": 10} } @@ -337,8 +417,8 @@ "description": { "signal": "\"measures[0]: \" + (format(datum[\"measures.0\"], \"\"))" }, - "x": {"scale": "child_x", "field": "measures\\.0"}, - "x2": {"scale": "child_x", "value": 0}, + "x": {"scale": "child_x", "field": "measures\\.0\\._end"}, + "x2": {"scale": "child_x", "field": "measures\\.0\\._start"}, "yc": {"signal": "child_height", "mult": 0.5}, "height": {"value": 10} } @@ -371,11 +451,16 @@ "type": "linear", "domain": { "fields": [ - {"data": "data_0", "field": "ranges\\.2"}, - {"data": "data_1", "field": "ranges\\.1"}, - {"data": "data_2", "field": "ranges\\.0"}, - {"data": "data_3", "field": "measures\\.1"}, - {"data": "data_4", "field": "measures\\.0"}, + {"data": "data_0", "field": "ranges\\.2\\._start"}, + {"data": "data_0", "field": "ranges\\.2\\._end"}, + {"data": "data_1", "field": "ranges\\.1\\._start"}, + {"data": "data_1", "field": "ranges\\.1\\._end"}, + {"data": "data_2", "field": "ranges\\.0\\._start"}, + {"data": "data_2", "field": "ranges\\.0\\._end"}, + {"data": "data_3", "field": "measures\\.1\\._start"}, + {"data": "data_3", "field": "measures\\.1\\._end"}, + {"data": "data_4", "field": "measures\\.0\\._start"}, + {"data": "data_4", "field": "measures\\.0\\._end"}, {"data": "data_5", "field": "markers\\.0"} ] }, diff --git a/examples/compiled/facet_grid_bar.vg.json b/examples/compiled/facet_grid_bar.vg.json index 2297ec3331..2d3696ae45 100644 --- a/examples/compiled/facet_grid_bar.vg.json +++ b/examples/compiled/facet_grid_bar.vg.json @@ -40,6 +40,14 @@ "name": "data_0", "source": "source_0", "transform": [ + { + "type": "stack", + "groupby": ["c", "a", "b"], + "field": "p", + "sort": {"field": [], "order": []}, + "as": ["p_start", "p_end"], + "offset": "zero" + }, { "type": "filter", "expr": "isValid(datum[\"p\"]) && isFinite(+datum[\"p\"])" @@ -181,8 +189,8 @@ "description": { "signal": "\"c: \" + (isValid(datum[\"c\"]) ? datum[\"c\"] : \"\"+datum[\"c\"]) + \"; p: \" + (format(datum[\"p\"], \"%\")) + \"; settings: \" + (isValid(datum[\"c\"]) ? datum[\"c\"] : \"\"+datum[\"c\"])" }, - "x": {"scale": "x", "field": "p"}, - "x2": {"scale": "x", "value": 0}, + "x": {"scale": "x", "field": "p_end"}, + "x2": {"scale": "x", "field": "p_start"}, "y": {"scale": "y", "field": "c"}, "height": {"scale": "y", "band": 1} } @@ -211,7 +219,7 @@ { "name": "x", "type": "linear", - "domain": {"data": "data_0", "field": "p"}, + "domain": {"data": "data_0", "fields": ["p_start", "p_end"]}, "range": [0, {"signal": "child_width"}], "nice": true, "zero": true diff --git a/examples/compiled/interactive_bar_select_highlight.vg.json b/examples/compiled/interactive_bar_select_highlight.vg.json index 3fbbfd62e1..1a588a2169 100644 --- a/examples/compiled/interactive_bar_select_highlight.vg.json +++ b/examples/compiled/interactive_bar_select_highlight.vg.json @@ -27,6 +27,14 @@ "source": "source_0", "transform": [ {"type": "identifier", "as": "_vgsid_"}, + { + "type": "stack", + "groupby": ["a"], + "field": "b", + "sort": {"field": [], "order": []}, + "as": ["b_start", "b_end"], + "offset": "zero" + }, { "type": "filter", "expr": "isValid(datum[\"b\"]) && isFinite(+datum[\"b\"])" @@ -151,8 +159,8 @@ }, "x": {"scale": "x", "field": "a"}, "width": {"scale": "x", "band": 1}, - "y": {"scale": "y", "field": "b"}, - "y2": {"scale": "y", "value": 0} + "y": {"scale": "y", "field": "b_end"}, + "y2": {"scale": "y", "field": "b_start"} } } } @@ -169,7 +177,7 @@ { "name": "y", "type": "linear", - "domain": {"data": "data_0", "field": "b"}, + "domain": {"data": "data_0", "fields": ["b_start", "b_end"]}, "range": [{"signal": "height"}, 0], "nice": true, "zero": true diff --git a/examples/compiled/interactive_dashboard_europe_pop.vg.json b/examples/compiled/interactive_dashboard_europe_pop.vg.json index 70eeaff7e0..9a9fc3c4fc 100644 --- a/examples/compiled/interactive_dashboard_europe_pop.vg.json +++ b/examples/compiled/interactive_dashboard_europe_pop.vg.json @@ -313,6 +313,17 @@ "name": "data_1", "source": "source_0", "transform": [ + { + "type": "stack", + "groupby": ["Country"], + "field": "Population_ages_15_64_of_total", + "sort": {"field": [], "order": []}, + "as": [ + "Population_ages_15_64_of_total_start", + "Population_ages_15_64_of_total_end" + ], + "offset": "zero" + }, { "type": "filter", "expr": "isValid(datum[\"Population_ages_15_64_of_total\"]) && isFinite(+datum[\"Population_ages_15_64_of_total\"])" @@ -323,6 +334,17 @@ "name": "data_2", "source": "source_0", "transform": [ + { + "type": "stack", + "groupby": ["Country"], + "field": "Population_ages_65_and_above_of_total", + "sort": {"field": [], "order": []}, + "as": [ + "Population_ages_65_and_above_of_total_start", + "Population_ages_65_and_above_of_total_end" + ], + "offset": "zero" + }, { "type": "filter", "expr": "isValid(datum[\"Population_ages_65_and_above_of_total\"]) && isFinite(+datum[\"Population_ages_65_and_above_of_total\"])" @@ -597,9 +619,12 @@ }, "x": { "scale": "concat_0_x", - "field": "Population_ages_15_64_of_total" + "field": "Population_ages_15_64_of_total_end" + }, + "x2": { + "scale": "concat_0_x", + "field": "Population_ages_15_64_of_total_start" }, - "x2": {"scale": "concat_0_x", "value": 0}, "y": {"scale": "concat_0_y", "field": "Country"}, "height": {"scale": "concat_0_y", "band": 1} } @@ -918,9 +943,12 @@ }, "x": { "scale": "concat_1_x", - "field": "Population_ages_65_and_above_of_total" + "field": "Population_ages_65_and_above_of_total_end" + }, + "x2": { + "scale": "concat_1_x", + "field": "Population_ages_65_and_above_of_total_start" }, - "x2": {"scale": "concat_1_x", "value": 0}, "y": {"scale": "concat_1_y", "field": "Country"}, "height": {"scale": "concat_1_y", "band": 1} } @@ -1440,7 +1468,13 @@ { "name": "concat_0_x", "type": "linear", - "domain": {"data": "data_1", "field": "Population_ages_15_64_of_total"}, + "domain": { + "data": "data_1", + "fields": [ + "Population_ages_15_64_of_total_start", + "Population_ages_15_64_of_total_end" + ] + }, "range": [0, {"signal": "concat_0_width"}], "nice": true, "zero": true @@ -1452,7 +1486,7 @@ "data": "source_0", "field": "Country", "sort": { - "op": "min", + "op": "sum", "field": "Population_ages_15_64_of_total", "order": "descending" } @@ -1466,7 +1500,10 @@ "type": "linear", "domain": { "data": "data_2", - "field": "Population_ages_65_and_above_of_total" + "fields": [ + "Population_ages_65_and_above_of_total_start", + "Population_ages_65_and_above_of_total_end" + ] }, "range": [0, {"signal": "concat_1_width"}], "nice": true, @@ -1479,7 +1516,7 @@ "data": "source_0", "field": "Country", "sort": { - "op": "min", + "op": "sum", "field": "Population_ages_65_and_above_of_total", "order": "descending" } diff --git a/examples/compiled/interactive_overview_detail.vg.json b/examples/compiled/interactive_overview_detail.vg.json index 540c13e867..b0aea67264 100644 --- a/examples/compiled/interactive_overview_detail.vg.json +++ b/examples/compiled/interactive_overview_detail.vg.json @@ -9,6 +9,50 @@ "name": "source_0", "url": "data/sp500.csv", "format": {"type": "csv", "parse": {"date": "date"}} + }, + { + "name": "data_0", + "source": "source_0", + "transform": [ + { + "type": "impute", + "field": "price", + "groupby": [], + "key": "date", + "method": "value", + "value": 0 + }, + { + "type": "stack", + "groupby": ["date"], + "field": "price", + "sort": {"field": [], "order": []}, + "as": ["price_start", "price_end"], + "offset": "zero" + } + ] + }, + { + "name": "data_1", + "source": "source_0", + "transform": [ + { + "type": "impute", + "field": "price", + "groupby": [], + "key": "date", + "method": "value", + "value": 0 + }, + { + "type": "stack", + "groupby": ["date"], + "field": "price", + "sort": {"field": [], "order": []}, + "as": ["price_start", "price_end"], + "offset": "zero" + } + ] } ], "signals": [ @@ -46,7 +90,7 @@ "style": ["area"], "sort": {"field": "datum[\"date\"]"}, "interactive": false, - "from": {"data": "source_0"}, + "from": {"data": "data_0"}, "encode": { "update": { "orient": {"value": "vertical"}, @@ -55,8 +99,8 @@ "signal": "\"date: \" + (timeFormat(datum[\"date\"], '%b %d, %Y')) + \"; price: \" + (format(datum[\"price\"], \"\"))" }, "x": {"scale": "concat_0_x", "field": "date"}, - "y": {"scale": "concat_0_y", "field": "price"}, - "y2": {"scale": "concat_0_y", "value": 0}, + "y": {"scale": "concat_0_y", "field": "price_end"}, + "y2": {"scale": "concat_0_y", "field": "price_start"}, "defined": { "signal": "isValid(datum[\"date\"]) && isFinite(+datum[\"date\"]) && isValid(datum[\"price\"]) && isFinite(+datum[\"price\"])" } @@ -337,7 +381,7 @@ "style": ["area"], "sort": {"field": "datum[\"date\"]"}, "interactive": true, - "from": {"data": "source_0"}, + "from": {"data": "data_1"}, "encode": { "update": { "orient": {"value": "vertical"}, @@ -346,8 +390,8 @@ "signal": "\"date: \" + (timeFormat(datum[\"date\"], '%b %d, %Y')) + \"; price: \" + (format(datum[\"price\"], \"\"))" }, "x": {"scale": "concat_1_x", "field": "date"}, - "y": {"scale": "concat_1_y", "field": "price"}, - "y2": {"scale": "concat_1_y", "value": 0}, + "y": {"scale": "concat_1_y", "field": "price_end"}, + "y2": {"scale": "concat_1_y", "field": "price_start"}, "defined": { "signal": "isValid(datum[\"date\"]) && isFinite(+datum[\"date\"]) && isValid(datum[\"price\"]) && isFinite(+datum[\"price\"])" } @@ -438,14 +482,14 @@ { "name": "concat_0_x", "type": "time", - "domain": {"data": "source_0", "field": "date"}, + "domain": {"data": "data_0", "field": "date"}, "domainRaw": {"signal": "brush[\"date\"]"}, "range": [0, {"signal": "width"}] }, { "name": "concat_0_y", "type": "linear", - "domain": {"data": "source_0", "field": "price"}, + "domain": {"data": "data_0", "fields": ["price_start", "price_end"]}, "range": [{"signal": "concat_0_height"}, 0], "nice": true, "zero": true @@ -453,13 +497,13 @@ { "name": "concat_1_x", "type": "time", - "domain": {"data": "source_0", "field": "date"}, + "domain": {"data": "data_1", "field": "date"}, "range": [0, {"signal": "width"}] }, { "name": "concat_1_y", "type": "linear", - "domain": {"data": "source_0", "field": "price"}, + "domain": {"data": "data_1", "fields": ["price_start", "price_end"]}, "range": [{"signal": "concat_1_height"}, 0], "nice": true, "zero": true diff --git a/examples/compiled/joinaggregate_mean_difference.vg.json b/examples/compiled/joinaggregate_mean_difference.vg.json index c04717e4c8..ae63ba42e2 100644 --- a/examples/compiled/joinaggregate_mean_difference.vg.json +++ b/examples/compiled/joinaggregate_mean_difference.vg.json @@ -27,6 +27,14 @@ "name": "data_0", "source": "source_0", "transform": [ + { + "type": "stack", + "groupby": ["Title"], + "field": "IMDB Rating", + "sort": {"field": [], "order": []}, + "as": ["IMDB Rating_start", "IMDB Rating_end"], + "offset": "zero" + }, { "type": "filter", "expr": "isValid(datum[\"IMDB Rating\"]) && isFinite(+datum[\"IMDB Rating\"])" @@ -71,8 +79,8 @@ "description": { "signal": "\"IMDB Rating: \" + (format(datum[\"IMDB Rating\"], \"\")) + \"; Title: \" + (isValid(datum[\"Title\"]) ? datum[\"Title\"] : \"\"+datum[\"Title\"])" }, - "x": {"scale": "x", "field": "IMDB Rating"}, - "x2": {"scale": "x", "value": 0}, + "x": {"scale": "x", "field": "IMDB Rating_end"}, + "x2": {"scale": "x", "field": "IMDB Rating_start"}, "y": {"scale": "y", "field": "Title"}, "height": {"scale": "y", "band": 1} } @@ -102,7 +110,8 @@ "type": "linear", "domain": { "fields": [ - {"data": "data_0", "field": "IMDB Rating"}, + {"data": "data_0", "field": "IMDB Rating_start"}, + {"data": "data_0", "field": "IMDB Rating_end"}, {"data": "data_1", "field": "average_AverageRating"} ] }, diff --git a/examples/compiled/joinaggregate_mean_difference_by_year.vg.json b/examples/compiled/joinaggregate_mean_difference_by_year.vg.json index 6febd7fb52..476b0af3f3 100644 --- a/examples/compiled/joinaggregate_mean_difference_by_year.vg.json +++ b/examples/compiled/joinaggregate_mean_difference_by_year.vg.json @@ -35,6 +35,14 @@ "name": "data_0", "source": "source_0", "transform": [ + { + "type": "stack", + "groupby": ["Title"], + "field": "IMDB Rating", + "sort": {"field": [], "order": []}, + "as": ["IMDB Rating_start", "IMDB Rating_end"], + "offset": "zero" + }, { "type": "filter", "expr": "isValid(datum[\"IMDB Rating\"]) && isFinite(+datum[\"IMDB Rating\"])" @@ -73,8 +81,8 @@ "description": { "signal": "\"IMDB Rating: \" + (format(datum[\"IMDB Rating\"], \"\")) + \"; Title: \" + (isValid(datum[\"Title\"]) ? datum[\"Title\"] : \"\"+datum[\"Title\"])" }, - "x": {"scale": "x", "field": "IMDB Rating"}, - "x2": {"scale": "x", "value": 0}, + "x": {"scale": "x", "field": "IMDB Rating_end"}, + "x2": {"scale": "x", "field": "IMDB Rating_start"}, "y": {"scale": "y", "field": "Title"}, "height": {"scale": "y", "band": 1} } @@ -107,7 +115,8 @@ "type": "linear", "domain": { "fields": [ - {"data": "data_0", "field": "IMDB Rating"}, + {"data": "data_0", "field": "IMDB Rating_start"}, + {"data": "data_0", "field": "IMDB Rating_end"}, {"data": "data_1", "field": "AverageYearRating"} ] }, diff --git a/examples/compiled/joinaggregate_percent_of_total.vg.json b/examples/compiled/joinaggregate_percent_of_total.vg.json index f5e9c1b4ce..ed7365cc58 100644 --- a/examples/compiled/joinaggregate_percent_of_total.vg.json +++ b/examples/compiled/joinaggregate_percent_of_total.vg.json @@ -31,6 +31,14 @@ "expr": "datum.Time/datum.TotalTime * 100", "as": "PercentOfTotal" }, + { + "type": "stack", + "groupby": ["Activity"], + "field": "PercentOfTotal", + "sort": {"field": [], "order": []}, + "as": ["PercentOfTotal_start", "PercentOfTotal_end"], + "offset": "zero" + }, { "type": "filter", "expr": "isValid(datum[\"PercentOfTotal\"]) && isFinite(+datum[\"PercentOfTotal\"])" @@ -58,8 +66,8 @@ "description": { "signal": "\"% of total Time: \" + (format(datum[\"PercentOfTotal\"], \"\")) + \"; Activity: \" + (isValid(datum[\"Activity\"]) ? datum[\"Activity\"] : \"\"+datum[\"Activity\"])" }, - "x": {"scale": "x", "field": "PercentOfTotal"}, - "x2": {"scale": "x", "value": 0}, + "x": {"scale": "x", "field": "PercentOfTotal_end"}, + "x2": {"scale": "x", "field": "PercentOfTotal_start"}, "y": {"scale": "y", "field": "Activity"}, "height": {"scale": "y", "band": 1} } @@ -70,7 +78,10 @@ { "name": "x", "type": "linear", - "domain": {"data": "data_0", "field": "PercentOfTotal"}, + "domain": { + "data": "data_0", + "fields": ["PercentOfTotal_start", "PercentOfTotal_end"] + }, "range": [0, {"signal": "width"}], "nice": true, "zero": true diff --git a/examples/compiled/layer_bar_annotations.vg.json b/examples/compiled/layer_bar_annotations.vg.json index 588bd49c3d..481e8c5c7b 100644 --- a/examples/compiled/layer_bar_annotations.vg.json +++ b/examples/compiled/layer_bar_annotations.vg.json @@ -31,6 +31,14 @@ "name": "data_1", "source": "source_0", "transform": [ + { + "type": "stack", + "groupby": ["Day"], + "field": "Value", + "sort": {"field": [], "order": []}, + "as": ["Value_start", "Value_end"], + "offset": "zero" + }, { "type": "filter", "expr": "isValid(datum[\"Value\"]) && isFinite(+datum[\"Value\"])" @@ -72,8 +80,8 @@ }, "x": {"scale": "x", "field": "Day"}, "width": {"scale": "x", "band": 1}, - "y": {"scale": "y", "field": "Value"}, - "y2": {"scale": "y", "value": 0} + "y": {"scale": "y", "field": "Value_end"}, + "y2": {"scale": "y", "field": "Value_start"} } } }, @@ -149,7 +157,8 @@ "type": "linear", "domain": { "fields": [ - {"data": "data_1", "field": "Value"}, + {"data": "data_1", "field": "Value_start"}, + {"data": "data_1", "field": "Value_end"}, {"data": "data_2", "field": "baseline"}, {"data": "data_2", "field": "Value"}, [300] diff --git a/examples/compiled/layer_bar_labels.vg.json b/examples/compiled/layer_bar_labels.vg.json index e8ba556f8e..a1213323b3 100644 --- a/examples/compiled/layer_bar_labels.vg.json +++ b/examples/compiled/layer_bar_labels.vg.json @@ -1,6 +1,6 @@ { "$schema": "https://vega.github.io/schema/vega/v5.json", - "description": "Bar chart with text labels. Apply scale padding to make the frame cover the labels.", + "description": "Bar chart with text labels. Set domain to make the frame cover the labels.", "background": "white", "padding": 5, "width": 200, @@ -11,7 +11,25 @@ "values": [{"a": "A", "b": 28}, {"a": "B", "b": 55}, {"a": "C", "b": 43}] }, { - "name": "data_0", + "name": "data_1", + "source": "source_0", + "transform": [ + { + "type": "stack", + "groupby": ["a"], + "field": "b", + "sort": {"field": [], "order": []}, + "as": ["b_start", "b_end"], + "offset": "zero" + }, + { + "type": "filter", + "expr": "isValid(datum[\"b\"]) && isFinite(+datum[\"b\"])" + } + ] + }, + { + "name": "data_2", "source": "source_0", "transform": [ { @@ -33,7 +51,7 @@ "name": "layer_0_marks", "type": "rect", "style": ["bar"], - "from": {"data": "data_0"}, + "from": {"data": "data_1"}, "encode": { "update": { "fill": {"value": "#4c78a8"}, @@ -41,8 +59,8 @@ "description": { "signal": "\"a: \" + (isValid(datum[\"a\"]) ? datum[\"a\"] : \"\"+datum[\"a\"]) + \"; b: \" + (format(datum[\"b\"], \"\"))" }, - "x": {"scale": "x", "field": "b"}, - "x2": {"scale": "x", "value": 0}, + "x": {"scale": "x", "field": "b_end"}, + "x2": {"scale": "x", "field": "b_start"}, "y": {"scale": "y", "field": "a"}, "height": {"scale": "y", "band": 1} } @@ -52,7 +70,7 @@ "name": "layer_1_marks", "type": "text", "style": ["text"], - "from": {"data": "data_0"}, + "from": {"data": "data_2"}, "encode": { "update": { "align": {"value": "left"}, @@ -73,16 +91,21 @@ { "name": "x", "type": "linear", - "domain": {"data": "data_0", "field": "b"}, + "domain": [0, 60], "range": [0, {"signal": "width"}], - "padding": 10, "nice": true, "zero": true }, { "name": "y", "type": "band", - "domain": {"data": "data_0", "field": "a", "sort": true}, + "domain": { + "fields": [ + {"data": "data_1", "field": "a"}, + {"data": "data_2", "field": "a"} + ], + "sort": true + }, "range": {"step": {"signal": "y_step"}}, "paddingInner": 0.1, "paddingOuter": 0.05 diff --git a/examples/compiled/layer_bar_labels_style.vg.json b/examples/compiled/layer_bar_labels_style.vg.json index da34ff423a..96e3a868b5 100644 --- a/examples/compiled/layer_bar_labels_style.vg.json +++ b/examples/compiled/layer_bar_labels_style.vg.json @@ -10,7 +10,25 @@ "values": [{"a": "A", "b": 28}, {"a": "B", "b": 55}, {"a": "C", "b": 43}] }, { - "name": "data_0", + "name": "data_1", + "source": "source_0", + "transform": [ + { + "type": "stack", + "groupby": ["a"], + "field": "b", + "sort": {"field": [], "order": []}, + "as": ["b_start", "b_end"], + "offset": "zero" + }, + { + "type": "filter", + "expr": "isValid(datum[\"b\"]) && isFinite(+datum[\"b\"])" + } + ] + }, + { + "name": "data_2", "source": "source_0", "transform": [ { @@ -32,7 +50,7 @@ "name": "layer_0_marks", "type": "rect", "style": ["bar"], - "from": {"data": "data_0"}, + "from": {"data": "data_1"}, "encode": { "update": { "fill": {"value": "#4c78a8"}, @@ -40,8 +58,8 @@ "description": { "signal": "\"a: \" + (isValid(datum[\"a\"]) ? datum[\"a\"] : \"\"+datum[\"a\"]) + \"; b: \" + (format(datum[\"b\"], \"\"))" }, - "x": {"scale": "x", "field": "b"}, - "x2": {"scale": "x", "value": 0}, + "x": {"scale": "x", "field": "b_end"}, + "x2": {"scale": "x", "field": "b_start"}, "y": {"scale": "y", "field": "a"}, "height": {"scale": "y", "band": 1} } @@ -51,7 +69,7 @@ "name": "layer_1_marks", "type": "text", "style": ["text", "label"], - "from": {"data": "data_0"}, + "from": {"data": "data_2"}, "encode": { "update": { "fill": {"value": "black"}, @@ -69,7 +87,13 @@ { "name": "x", "type": "linear", - "domain": {"data": "data_0", "field": "b"}, + "domain": { + "fields": [ + {"data": "data_1", "field": "b_start"}, + {"data": "data_1", "field": "b_end"}, + {"data": "data_2", "field": "b"} + ] + }, "range": [0, {"signal": "width"}], "nice": true, "zero": true @@ -77,7 +101,13 @@ { "name": "y", "type": "band", - "domain": {"data": "data_0", "field": "a", "sort": true}, + "domain": { + "fields": [ + {"data": "data_1", "field": "a"}, + {"data": "data_2", "field": "a"} + ], + "sort": true + }, "range": {"step": {"signal": "y_step"}}, "paddingInner": 0.1, "paddingOuter": 0.05 diff --git a/examples/compiled/layer_bar_line.vg.json b/examples/compiled/layer_bar_line.vg.json index 53b3391873..eec6e7a17b 100644 --- a/examples/compiled/layer_bar_line.vg.json +++ b/examples/compiled/layer_bar_line.vg.json @@ -23,6 +23,14 @@ "name": "data_0", "source": "source_0", "transform": [ + { + "type": "stack", + "groupby": ["a"], + "field": "b", + "sort": {"field": [], "order": []}, + "as": ["b_start", "b_end"], + "offset": "zero" + }, { "type": "filter", "expr": "isValid(datum[\"b\"]) && isFinite(+datum[\"b\"])" @@ -52,8 +60,8 @@ }, "x": {"scale": "x", "field": "a"}, "width": {"scale": "x", "band": 1}, - "y": {"scale": "y", "field": "b"}, - "y2": {"scale": "y", "value": 0} + "y": {"scale": "y", "field": "b_end"}, + "y2": {"scale": "y", "field": "b_start"} } } }, @@ -98,7 +106,8 @@ "type": "linear", "domain": { "fields": [ - {"data": "data_0", "field": "b"}, + {"data": "data_0", "field": "b_start"}, + {"data": "data_0", "field": "b_end"}, {"data": "source_0", "field": "b"} ] }, diff --git a/examples/compiled/layer_bar_line_union.vg.json b/examples/compiled/layer_bar_line_union.vg.json index 09bdf36657..ea1feef68a 100644 --- a/examples/compiled/layer_bar_line_union.vg.json +++ b/examples/compiled/layer_bar_line_union.vg.json @@ -23,6 +23,14 @@ "name": "data_0", "source": "source_0", "transform": [ + { + "type": "stack", + "groupby": ["a"], + "field": "c", + "sort": {"field": [], "order": []}, + "as": ["c_start", "c_end"], + "offset": "zero" + }, { "type": "filter", "expr": "isValid(datum[\"c\"]) && isFinite(+datum[\"c\"])" @@ -52,8 +60,8 @@ }, "x": {"scale": "x", "field": "a"}, "width": {"scale": "x", "band": 1}, - "y": {"scale": "y", "field": "c"}, - "y2": {"scale": "y", "value": 0} + "y": {"scale": "y", "field": "c_end"}, + "y2": {"scale": "y", "field": "c_start"} } } }, @@ -98,7 +106,8 @@ "type": "linear", "domain": { "fields": [ - {"data": "data_0", "field": "c"}, + {"data": "data_0", "field": "c_start"}, + {"data": "data_0", "field": "c_end"}, {"data": "source_0", "field": "c"} ] }, diff --git a/examples/compiled/trellis_area_seattle.png b/examples/compiled/trellis_area_seattle.png index 01ee80d2e961a2a3a5b7f2a9fbcd10ab1b943102..25ff23c931b112fb56210f0f1e36abd5ac459824 100644 GIT binary patch literal 69356 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ޥ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