From 663292695348f51a186f2ccb7a41abca79d87e1b Mon Sep 17 00:00:00 2001 From: GitHub Actions Bot Date: Thu, 4 Aug 2022 15:34:21 +0000 Subject: [PATCH] chore: update examples [CI] --- .../compiled/boxplot_1D_horizontal.vg.json | 7 +- .../boxplot_1D_horizontal_custom_mark.vg.json | 7 +- .../boxplot_1D_horizontal_explicit.vg.json | 7 +- examples/compiled/boxplot_1D_vertical.vg.json | 7 +- .../compiled/boxplot_2D_horizontal.vg.json | 7 +- .../boxplot_2D_horizontal_color_size.vg.json | 8 +- examples/compiled/boxplot_2D_vertical.vg.json | 9 +- .../boxplot_2D_vertical_single_per_group.png | Bin 3663 -> 3650 bytes .../boxplot_2D_vertical_single_per_group.svg | 2 +- ...xplot_2D_vertical_single_per_group.vg.json | 5 +- ...lot_2D_vertical_single_per_group_color.png | Bin 0 -> 4946 bytes ...lot_2D_vertical_single_per_group_color.svg | 1 + ...2D_vertical_single_per_group_color.vg.json | 319 ++++++++++++++++++ examples/compiled/boxplot_groupped.vg.json | 9 +- .../boxplot_minmax_2D_horizontal.vg.json | 7 +- ...2D_horizontal_custom_midtick_color.vg.json | 7 +- .../boxplot_minmax_2D_vertical.vg.json | 9 +- .../boxplot_tooltip_aggregate.vg.json | 7 +- .../boxplot_tooltip_not_aggregate.vg.json | 7 +- .../compiled/layer_boxplot_circle.vg.json | 5 +- ..._horizontal_custom_mark_normalized.vl.json | 5 + ..._1D_horizontal_explicit_normalized.vl.json | 5 + .../boxplot_1D_horizontal_normalized.vl.json | 5 + .../boxplot_1D_vertical_normalized.vl.json | 5 + ...D_horizontal_color_size_normalized.vl.json | 6 + .../boxplot_2D_horizontal_normalized.vl.json | 5 + .../boxplot_2D_vertical_normalized.vl.json | 8 + ..._single_per_group_color_normalized.vl.json | 215 ++++++++++++ ...rtical_single_per_group_normalized.vl.json | 5 + .../boxplot_groupped_normalized.vl.json | 7 + ...al_custom_midtick_color_normalized.vl.json | 5 + ...ot_minmax_2D_horizontal_normalized.vl.json | 5 + ...plot_minmax_2D_vertical_normalized.vl.json | 8 + ...xplot_tooltip_aggregate_normalized.vl.json | 5 + ...t_tooltip_not_aggregate_normalized.vl.json | 5 + .../layer_boxplot_circle_normalized.vl.json | 5 + 36 files changed, 713 insertions(+), 16 deletions(-) create mode 100644 examples/compiled/boxplot_2D_vertical_single_per_group_color.png create mode 100644 examples/compiled/boxplot_2D_vertical_single_per_group_color.svg create mode 100644 examples/compiled/boxplot_2D_vertical_single_per_group_color.vg.json create mode 100644 examples/specs/normalized/boxplot_2D_vertical_single_per_group_color_normalized.vl.json diff --git a/examples/compiled/boxplot_1D_horizontal.vg.json b/examples/compiled/boxplot_1D_horizontal.vg.json index b7dd924888..19831de56e 100644 --- a/examples/compiled/boxplot_1D_horizontal.vg.json +++ b/examples/compiled/boxplot_1D_horizontal.vg.json @@ -219,7 +219,12 @@ "encode": { "update": { "opacity": {"value": 0.7}, - "fill": {"value": "white"}, + "fill": [ + { + "test": "datum['lower_box_Body Mass (g)'] >= datum['upper_box_Body Mass (g)']" + }, + {"value": "white"} + ], "tooltip": { "signal": "{\"Max of Body Mass (g)\": format(datum[\"max_Body Mass (g)\"], \"\"), \"Q3 of Body Mass (g)\": format(datum[\"upper_box_Body Mass (g)\"], \"\"), \"Median of Body Mass (g)\": format(datum[\"mid_box_Body Mass (g)\"], \"\"), \"Q1 of Body Mass (g)\": format(datum[\"lower_box_Body Mass (g)\"], \"\"), \"Min of Body Mass (g)\": format(datum[\"min_Body Mass (g)\"], \"\")}" }, diff --git a/examples/compiled/boxplot_1D_horizontal_custom_mark.vg.json b/examples/compiled/boxplot_1D_horizontal_custom_mark.vg.json index 37c52929e7..9dad4b7b9b 100644 --- a/examples/compiled/boxplot_1D_horizontal_custom_mark.vg.json +++ b/examples/compiled/boxplot_1D_horizontal_custom_mark.vg.json @@ -269,7 +269,12 @@ "encode": { "update": { "opacity": {"value": 0.7}, - "fill": {"value": "red"}, + "fill": [ + { + "test": "datum['lower_box_Body Mass (g)'] >= datum['upper_box_Body Mass (g)']" + }, + {"value": "red"} + ], "tooltip": { "signal": "{\"Max of Body Mass (g)\": format(datum[\"max_Body Mass (g)\"], \"\"), \"Q3 of Body Mass (g)\": format(datum[\"upper_box_Body Mass (g)\"], \"\"), \"Median of Body Mass (g)\": format(datum[\"mid_box_Body Mass (g)\"], \"\"), \"Q1 of Body Mass (g)\": format(datum[\"lower_box_Body Mass (g)\"], \"\"), \"Min of Body Mass (g)\": format(datum[\"min_Body Mass (g)\"], \"\")}" }, diff --git a/examples/compiled/boxplot_1D_horizontal_explicit.vg.json b/examples/compiled/boxplot_1D_horizontal_explicit.vg.json index b7dd924888..19831de56e 100644 --- a/examples/compiled/boxplot_1D_horizontal_explicit.vg.json +++ b/examples/compiled/boxplot_1D_horizontal_explicit.vg.json @@ -219,7 +219,12 @@ "encode": { "update": { "opacity": {"value": 0.7}, - "fill": {"value": "white"}, + "fill": [ + { + "test": "datum['lower_box_Body Mass (g)'] >= datum['upper_box_Body Mass (g)']" + }, + {"value": "white"} + ], "tooltip": { "signal": "{\"Max of Body Mass (g)\": format(datum[\"max_Body Mass (g)\"], \"\"), \"Q3 of Body Mass (g)\": format(datum[\"upper_box_Body Mass (g)\"], \"\"), \"Median of Body Mass (g)\": format(datum[\"mid_box_Body Mass (g)\"], \"\"), \"Q1 of Body Mass (g)\": format(datum[\"lower_box_Body Mass (g)\"], \"\"), \"Min of Body Mass (g)\": format(datum[\"min_Body Mass (g)\"], \"\")}" }, diff --git a/examples/compiled/boxplot_1D_vertical.vg.json b/examples/compiled/boxplot_1D_vertical.vg.json index fcf60d6c8f..3f760974d5 100644 --- a/examples/compiled/boxplot_1D_vertical.vg.json +++ b/examples/compiled/boxplot_1D_vertical.vg.json @@ -219,7 +219,12 @@ "encode": { "update": { "opacity": {"value": 0.7}, - "fill": {"value": "white"}, + "fill": [ + { + "test": "datum['lower_box_Body Mass (g)'] >= datum['upper_box_Body Mass (g)']" + }, + {"value": "white"} + ], "tooltip": { "signal": "{\"Max of Body Mass (g)\": format(datum[\"max_Body Mass (g)\"], \"\"), \"Q3 of Body Mass (g)\": format(datum[\"upper_box_Body Mass (g)\"], \"\"), \"Median of Body Mass (g)\": format(datum[\"mid_box_Body Mass (g)\"], \"\"), \"Q1 of Body Mass (g)\": format(datum[\"lower_box_Body Mass (g)\"], \"\"), \"Min of Body Mass (g)\": format(datum[\"min_Body Mass (g)\"], \"\")}" }, diff --git a/examples/compiled/boxplot_2D_horizontal.vg.json b/examples/compiled/boxplot_2D_horizontal.vg.json index 657e0434dd..20c4c4d374 100644 --- a/examples/compiled/boxplot_2D_horizontal.vg.json +++ b/examples/compiled/boxplot_2D_horizontal.vg.json @@ -222,7 +222,12 @@ "encode": { "update": { "opacity": {"value": 0.7}, - "fill": {"value": "white"}, + "fill": [ + { + "test": "datum['lower_box_Body Mass (g)'] >= datum['upper_box_Body Mass (g)']" + }, + {"value": "white"} + ], "tooltip": { "signal": "{\"Max of Body Mass (g)\": format(datum[\"max_Body Mass (g)\"], \"\"), \"Q3 of Body Mass (g)\": format(datum[\"upper_box_Body Mass (g)\"], \"\"), \"Median of Body Mass (g)\": format(datum[\"mid_box_Body Mass (g)\"], \"\"), \"Q1 of Body Mass (g)\": format(datum[\"lower_box_Body Mass (g)\"], \"\"), \"Min of Body Mass (g)\": format(datum[\"min_Body Mass (g)\"], \"\"), \"Species\": isValid(datum[\"Species\"]) ? datum[\"Species\"] : \"\"+datum[\"Species\"]}" }, diff --git a/examples/compiled/boxplot_2D_horizontal_color_size.vg.json b/examples/compiled/boxplot_2D_horizontal_color_size.vg.json index aa06950bc5..8bc85b5725 100644 --- a/examples/compiled/boxplot_2D_horizontal_color_size.vg.json +++ b/examples/compiled/boxplot_2D_horizontal_color_size.vg.json @@ -222,7 +222,13 @@ "encode": { "update": { "opacity": {"value": 0.7}, - "fill": {"value": "white"}, + "fill": [ + { + "test": "datum['lower_box_Body Mass (g)'] >= datum['upper_box_Body Mass (g)']", + "value": "teal" + }, + {"value": "white"} + ], "tooltip": { "signal": "{\"Max of Body Mass (g)\": format(datum[\"max_Body Mass (g)\"], \"\"), \"Q3 of Body Mass (g)\": format(datum[\"upper_box_Body Mass (g)\"], \"\"), \"Median of Body Mass (g)\": format(datum[\"mid_box_Body Mass (g)\"], \"\"), \"Q1 of Body Mass (g)\": format(datum[\"lower_box_Body Mass (g)\"], \"\"), \"Min of Body Mass (g)\": format(datum[\"min_Body Mass (g)\"], \"\"), \"Species\": isValid(datum[\"Species\"]) ? datum[\"Species\"] : \"\"+datum[\"Species\"]}" }, diff --git a/examples/compiled/boxplot_2D_vertical.vg.json b/examples/compiled/boxplot_2D_vertical.vg.json index d79f793f82..a56aa9356c 100644 --- a/examples/compiled/boxplot_2D_vertical.vg.json +++ b/examples/compiled/boxplot_2D_vertical.vg.json @@ -222,7 +222,14 @@ "encode": { "update": { "opacity": {"value": 0.7}, - "fill": {"value": "white"}, + "fill": [ + { + "test": "datum['lower_box_Body Mass (g)'] >= datum['upper_box_Body Mass (g)']", + "scale": "color", + "field": "Species" + }, + {"value": "white"} + ], "tooltip": { "signal": "{\"Max of Body Mass (g)\": format(datum[\"max_Body Mass (g)\"], \"\"), \"Q3 of Body Mass (g)\": format(datum[\"upper_box_Body Mass (g)\"], \"\"), \"Median of Body Mass (g)\": format(datum[\"mid_box_Body Mass (g)\"], \"\"), \"Q1 of Body Mass (g)\": format(datum[\"lower_box_Body Mass (g)\"], \"\"), \"Min of Body Mass (g)\": format(datum[\"min_Body Mass (g)\"], \"\"), \"Species\": isValid(datum[\"Species\"]) ? datum[\"Species\"] : \"\"+datum[\"Species\"]}" }, diff --git a/examples/compiled/boxplot_2D_vertical_single_per_group.png b/examples/compiled/boxplot_2D_vertical_single_per_group.png index bfef7d24e7dbd42fe077ee0c6acb3202810bfbbb..b3407bba571cfb5e7202b8a1b2881d1d735a9fa5 100644 GIT binary patch delta 3282 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 delta 3310 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 O@VcjEs9B \ No newline at end of file +ABa01020304050b \ No newline at end of file diff --git a/examples/compiled/boxplot_2D_vertical_single_per_group.vg.json b/examples/compiled/boxplot_2D_vertical_single_per_group.vg.json index 0c956676b1..e261fea590 100644 --- a/examples/compiled/boxplot_2D_vertical_single_per_group.vg.json +++ b/examples/compiled/boxplot_2D_vertical_single_per_group.vg.json @@ -200,7 +200,10 @@ "encode": { "update": { "opacity": {"value": 0.7}, - "fill": {"value": "white"}, + "fill": [ + {"test": "datum['lower_box_b'] >= datum['upper_box_b']"}, + {"value": "white"} + ], "tooltip": { "signal": "{\"Max of b\": format(datum[\"max_b\"], \"\"), \"Q3 of b\": format(datum[\"upper_box_b\"], \"\"), \"Median of b\": format(datum[\"mid_box_b\"], \"\"), \"Q1 of b\": format(datum[\"lower_box_b\"], \"\"), \"Min of b\": format(datum[\"min_b\"], \"\"), \"a\": isValid(datum[\"a\"]) ? datum[\"a\"] : \"\"+datum[\"a\"]}" }, diff --git a/examples/compiled/boxplot_2D_vertical_single_per_group_color.png b/examples/compiled/boxplot_2D_vertical_single_per_group_color.png new file mode 100644 index 0000000000000000000000000000000000000000..d87d47dbec4ac7f3f87ca71e75a5fd67f28cbd4e GIT binary patch literal 4946 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 literal 0 HcmV?d00001 diff --git a/examples/compiled/boxplot_2D_vertical_single_per_group_color.svg b/examples/compiled/boxplot_2D_vertical_single_per_group_color.svg new file mode 100644 index 0000000000..3941ca96fa --- /dev/null +++ b/examples/compiled/boxplot_2D_vertical_single_per_group_color.svg @@ -0,0 +1 @@ +ABa01020304050bABa \ No newline at end of file diff --git a/examples/compiled/boxplot_2D_vertical_single_per_group_color.vg.json b/examples/compiled/boxplot_2D_vertical_single_per_group_color.vg.json new file mode 100644 index 0000000000..b35940b20a --- /dev/null +++ b/examples/compiled/boxplot_2D_vertical_single_per_group_color.vg.json @@ -0,0 +1,319 @@ +{ + "$schema": "https://vega.github.io/schema/vega/v5.json", + "description": "A simple bar chart with embedded data.", + "background": "white", + "padding": 5, + "height": 200, + "style": "cell", + "data": [ + { + "name": "source_0", + "values": [{"a": "A", "b": 28}, {"a": "A", "b": 30}, {"a": "B", "b": 55}] + }, + { + "name": "data_1", + "source": "source_0", + "transform": [ + { + "type": "joinaggregate", + "as": ["lower_box_b", "upper_box_b"], + "ops": ["q1", "q3"], + "fields": ["b", "b"], + "groupby": ["a", "a"] + } + ] + }, + { + "name": "data_2", + "source": "data_1", + "transform": [ + { + "type": "filter", + "expr": "(datum[\"b\"] < datum[\"lower_box_b\"] - 1.5 * (datum[\"upper_box_b\"] - datum[\"lower_box_b\"])) || (datum[\"b\"] > datum[\"upper_box_b\"] + 1.5 * (datum[\"upper_box_b\"] - datum[\"lower_box_b\"]))" + }, + { + "type": "filter", + "expr": "isValid(datum[\"b\"]) && isFinite(+datum[\"b\"])" + } + ] + }, + { + "name": "data_3", + "source": "data_1", + "transform": [ + { + "type": "filter", + "expr": "(datum[\"lower_box_b\"] - 1.5 * (datum[\"upper_box_b\"] - datum[\"lower_box_b\"]) <= datum[\"b\"]) && (datum[\"b\"] <= datum[\"upper_box_b\"] + 1.5 * (datum[\"upper_box_b\"] - datum[\"lower_box_b\"]))" + }, + { + "type": "aggregate", + "groupby": ["a"], + "ops": ["min", "max", "min", "max"], + "fields": ["b", "b", "lower_box_b", "upper_box_b"], + "as": [ + "lower_whisker_b", + "upper_whisker_b", + "lower_box_b", + "upper_box_b" + ] + } + ] + }, + { + "name": "data_4", + "source": "source_0", + "transform": [ + { + "type": "aggregate", + "groupby": ["a"], + "ops": ["q1", "q3", "median", "min", "max"], + "fields": ["b", "b", "b", "b", "b"], + "as": ["lower_box_b", "upper_box_b", "mid_box_b", "min_b", "max_b"] + } + ] + } + ], + "signals": [ + {"name": "x_step", "value": 20}, + {"name": "width", "update": "bandspace(domain('x').length, 0, 0) * x_step"} + ], + "marks": [ + { + "name": "layer_0_layer_0_marks", + "type": "symbol", + "style": ["point", "boxplot-outliers"], + "from": {"data": "data_2"}, + "encode": { + "update": { + "opacity": {"value": 0.7}, + "fill": {"value": "transparent"}, + "stroke": {"scale": "color", "field": "a"}, + "ariaRoleDescription": {"value": "point"}, + "description": { + "signal": "\"a: \" + (isValid(datum[\"a\"]) ? datum[\"a\"] : \"\"+datum[\"a\"]) + \"; b: \" + (format(datum[\"b\"], \"\"))" + }, + "x": {"scale": "x", "field": "a", "band": 0.5}, + "y": {"scale": "y", "field": "b"} + } + } + }, + { + "name": "layer_0_layer_1_layer_0_marks", + "type": "rule", + "style": ["rule", "boxplot-rule"], + "aria": false, + "from": {"data": "data_3"}, + "encode": { + "update": { + "stroke": {"value": "black"}, + "tooltip": { + "signal": "{\"Upper Whisker of b\": format(datum[\"upper_whisker_b\"], \"\"), \"Lower Whisker of b\": format(datum[\"lower_whisker_b\"], \"\"), \"a\": isValid(datum[\"a\"]) ? datum[\"a\"] : \"\"+datum[\"a\"]}" + }, + "x": {"scale": "x", "field": "a", "band": 0.5}, + "y": [ + { + "test": "!isValid(datum[\"lower_whisker_b\"]) || !isFinite(+datum[\"lower_whisker_b\"])", + "field": {"group": "height"} + }, + {"scale": "y", "field": "lower_whisker_b"} + ], + "y2": [ + { + "test": "!isValid(datum[\"lower_box_b\"]) || !isFinite(+datum[\"lower_box_b\"])", + "field": {"group": "height"} + }, + {"scale": "y", "field": "lower_box_b"} + ] + } + } + }, + { + "name": "layer_0_layer_1_layer_1_marks", + "type": "rule", + "style": ["rule", "boxplot-rule"], + "aria": false, + "from": {"data": "data_3"}, + "encode": { + "update": { + "stroke": {"value": "black"}, + "tooltip": { + "signal": "{\"Upper Whisker of b\": format(datum[\"upper_whisker_b\"], \"\"), \"Lower Whisker of b\": format(datum[\"lower_whisker_b\"], \"\"), \"a\": isValid(datum[\"a\"]) ? datum[\"a\"] : \"\"+datum[\"a\"]}" + }, + "x": {"scale": "x", "field": "a", "band": 0.5}, + "y": [ + { + "test": "!isValid(datum[\"upper_box_b\"]) || !isFinite(+datum[\"upper_box_b\"])", + "field": {"group": "height"} + }, + {"scale": "y", "field": "upper_box_b"} + ], + "y2": [ + { + "test": "!isValid(datum[\"upper_whisker_b\"]) || !isFinite(+datum[\"upper_whisker_b\"])", + "field": {"group": "height"} + }, + {"scale": "y", "field": "upper_whisker_b"} + ] + } + } + }, + { + "name": "layer_1_layer_0_marks", + "type": "rect", + "style": ["bar", "boxplot-box"], + "from": {"data": "data_4"}, + "encode": { + "update": { + "ariaRoleDescription": {"value": "box"}, + "fill": {"scale": "color", "field": "a"}, + "tooltip": { + "signal": "{\"Max of b\": format(datum[\"max_b\"], \"\"), \"Q3 of b\": format(datum[\"upper_box_b\"], \"\"), \"Median of b\": format(datum[\"mid_box_b\"], \"\"), \"Q1 of b\": format(datum[\"lower_box_b\"], \"\"), \"Min of b\": format(datum[\"min_b\"], \"\"), \"a\": isValid(datum[\"a\"]) ? datum[\"a\"] : \"\"+datum[\"a\"]}" + }, + "description": { + "signal": "\"a: \" + (isValid(datum[\"a\"]) ? datum[\"a\"] : \"\"+datum[\"a\"]) + \"; b: \" + (format(datum[\"lower_box_b\"], \"\")) + \"; upper_box_b: \" + (format(datum[\"upper_box_b\"], \"\")) + \"; Max of b: \" + (format(datum[\"max_b\"], \"\")) + \"; Q3 of b: \" + (format(datum[\"upper_box_b\"], \"\")) + \"; Median of b: \" + (format(datum[\"mid_box_b\"], \"\")) + \"; Q1 of b: \" + (format(datum[\"lower_box_b\"], \"\")) + \"; Min of b: \" + (format(datum[\"min_b\"], \"\"))" + }, + "xc": {"scale": "x", "field": "a", "band": 0.5}, + "width": {"value": 14}, + "y": [ + { + "test": "!isValid(datum[\"lower_box_b\"]) || !isFinite(+datum[\"lower_box_b\"])", + "field": {"group": "height"} + }, + {"scale": "y", "field": "lower_box_b"} + ], + "y2": [ + { + "test": "!isValid(datum[\"upper_box_b\"]) || !isFinite(+datum[\"upper_box_b\"])", + "field": {"group": "height"} + }, + {"scale": "y", "field": "upper_box_b"} + ] + } + } + }, + { + "name": "layer_1_layer_1_marks", + "type": "rect", + "style": ["tick", "boxplot-median"], + "aria": false, + "from": {"data": "data_4"}, + "encode": { + "update": { + "opacity": {"value": 0.7}, + "fill": [ + { + "test": "datum['lower_box_b'] >= datum['upper_box_b']", + "scale": "color", + "field": "a" + }, + {"value": "white"} + ], + "tooltip": { + "signal": "{\"Max of b\": format(datum[\"max_b\"], \"\"), \"Q3 of b\": format(datum[\"upper_box_b\"], \"\"), \"Median of b\": format(datum[\"mid_box_b\"], \"\"), \"Q1 of b\": format(datum[\"lower_box_b\"], \"\"), \"Min of b\": format(datum[\"min_b\"], \"\"), \"a\": isValid(datum[\"a\"]) ? datum[\"a\"] : \"\"+datum[\"a\"]}" + }, + "xc": {"scale": "x", "field": "a", "band": 0.5}, + "yc": [ + { + "test": "!isValid(datum[\"mid_box_b\"]) || !isFinite(+datum[\"mid_box_b\"])", + "field": {"group": "height"} + }, + {"scale": "y", "field": "mid_box_b"} + ], + "width": {"value": 14}, + "height": {"value": 1} + } + } + } + ], + "scales": [ + { + "name": "x", + "type": "band", + "domain": { + "fields": [ + {"data": "data_2", "field": "a"}, + {"data": "data_3", "field": "a"}, + {"data": "data_4", "field": "a"} + ], + "sort": true + }, + "range": {"step": {"signal": "x_step"}}, + "paddingInner": 0, + "paddingOuter": 0 + }, + { + "name": "y", + "type": "linear", + "domain": { + "fields": [ + {"data": "data_2", "field": "b"}, + {"data": "data_3", "field": "lower_whisker_b"}, + {"data": "data_3", "field": "lower_box_b"}, + {"data": "data_3", "field": "upper_box_b"}, + {"data": "data_3", "field": "upper_whisker_b"}, + {"data": "data_4", "field": "lower_box_b"}, + {"data": "data_4", "field": "upper_box_b"}, + {"data": "data_4", "field": "mid_box_b"} + ] + }, + "range": [{"signal": "height"}, 0], + "nice": true, + "zero": true + }, + { + "name": "color", + "type": "ordinal", + "domain": { + "fields": [ + {"data": "data_2", "field": "a"}, + {"data": "data_4", "field": "a"} + ], + "sort": true + }, + "range": "category" + } + ], + "axes": [ + { + "scale": "y", + "orient": "left", + "gridScale": "x", + "grid": true, + "tickCount": {"signal": "ceil(height/40)"}, + "domain": false, + "labels": false, + "aria": false, + "maxExtent": 0, + "minExtent": 0, + "ticks": false, + "zindex": 0 + }, + { + "scale": "x", + "orient": "bottom", + "grid": false, + "title": "a", + "labelAngle": 0, + "labelBaseline": "top", + "zindex": 0 + }, + { + "scale": "y", + "orient": "left", + "grid": false, + "title": "b", + "labelOverlap": true, + "tickCount": {"signal": "ceil(height/40)"}, + "zindex": 0 + } + ], + "legends": [ + { + "stroke": "color", + "symbolType": "circle", + "title": "a", + "encode": {"symbols": {"update": {"opacity": {"value": 0.7}}}}, + "fill": "color" + } + ] +} diff --git a/examples/compiled/boxplot_groupped.vg.json b/examples/compiled/boxplot_groupped.vg.json index 71cd079b7d..3b5e2df00c 100644 --- a/examples/compiled/boxplot_groupped.vg.json +++ b/examples/compiled/boxplot_groupped.vg.json @@ -240,7 +240,14 @@ "encode": { "update": { "opacity": {"value": 0.7}, - "fill": {"value": "white"}, + "fill": [ + { + "test": "datum['lower_box_Acceleration'] >= datum['upper_box_Acceleration']", + "scale": "color", + "field": "Origin" + }, + {"value": "white"} + ], "tooltip": { "signal": "{\"Max of Acceleration\": format(datum[\"max_Acceleration\"], \"\"), \"Q3 of Acceleration\": format(datum[\"upper_box_Acceleration\"], \"\"), \"Median of Acceleration\": format(datum[\"mid_box_Acceleration\"], \"\"), \"Q1 of Acceleration\": format(datum[\"lower_box_Acceleration\"], \"\"), \"Min of Acceleration\": format(datum[\"min_Acceleration\"], \"\"), \"Cylinders\": isValid(datum[\"Cylinders\"]) ? datum[\"Cylinders\"] : \"\"+datum[\"Cylinders\"], \"Origin\": isValid(datum[\"Origin\"]) ? datum[\"Origin\"] : \"\"+datum[\"Origin\"]}" }, diff --git a/examples/compiled/boxplot_minmax_2D_horizontal.vg.json b/examples/compiled/boxplot_minmax_2D_horizontal.vg.json index b6a8859e67..fee50539ea 100644 --- a/examples/compiled/boxplot_minmax_2D_horizontal.vg.json +++ b/examples/compiled/boxplot_minmax_2D_horizontal.vg.json @@ -145,7 +145,12 @@ "encode": { "update": { "opacity": {"value": 0.7}, - "fill": {"value": "white"}, + "fill": [ + { + "test": "datum['lower_box_Body Mass (g)'] >= datum['upper_box_Body Mass (g)']" + }, + {"value": "white"} + ], "tooltip": { "signal": "{\"Max of Body Mass (g)\": format(datum[\"upper_whisker_Body Mass (g)\"], \"\"), \"Q3 of Body Mass (g)\": format(datum[\"upper_box_Body Mass (g)\"], \"\"), \"Median of Body Mass (g)\": format(datum[\"mid_box_Body Mass (g)\"], \"\"), \"Q1 of Body Mass (g)\": format(datum[\"lower_box_Body Mass (g)\"], \"\"), \"Min of Body Mass (g)\": format(datum[\"lower_whisker_Body Mass (g)\"], \"\"), \"Species\": isValid(datum[\"Species\"]) ? datum[\"Species\"] : \"\"+datum[\"Species\"]}" }, diff --git a/examples/compiled/boxplot_minmax_2D_horizontal_custom_midtick_color.vg.json b/examples/compiled/boxplot_minmax_2D_horizontal_custom_midtick_color.vg.json index cbbf3ea904..ae1602f5cd 100644 --- a/examples/compiled/boxplot_minmax_2D_horizontal_custom_midtick_color.vg.json +++ b/examples/compiled/boxplot_minmax_2D_horizontal_custom_midtick_color.vg.json @@ -145,7 +145,12 @@ "encode": { "update": { "opacity": {"value": 0.7}, - "fill": {"value": "orange"}, + "fill": [ + { + "test": "datum['lower_box_Body Mass (g)'] >= datum['upper_box_Body Mass (g)']" + }, + {"value": "orange"} + ], "tooltip": { "signal": "{\"Max of Body Mass (g)\": format(datum[\"upper_whisker_Body Mass (g)\"], \"\"), \"Q3 of Body Mass (g)\": format(datum[\"upper_box_Body Mass (g)\"], \"\"), \"Median of Body Mass (g)\": format(datum[\"mid_box_Body Mass (g)\"], \"\"), \"Q1 of Body Mass (g)\": format(datum[\"lower_box_Body Mass (g)\"], \"\"), \"Min of Body Mass (g)\": format(datum[\"lower_whisker_Body Mass (g)\"], \"\"), \"Species\": isValid(datum[\"Species\"]) ? datum[\"Species\"] : \"\"+datum[\"Species\"]}" }, diff --git a/examples/compiled/boxplot_minmax_2D_vertical.vg.json b/examples/compiled/boxplot_minmax_2D_vertical.vg.json index ebff85d15d..0b3e2d8c19 100644 --- a/examples/compiled/boxplot_minmax_2D_vertical.vg.json +++ b/examples/compiled/boxplot_minmax_2D_vertical.vg.json @@ -145,7 +145,14 @@ "encode": { "update": { "opacity": {"value": 0.7}, - "fill": {"value": "white"}, + "fill": [ + { + "test": "datum['lower_box_Body Mass (g)'] >= datum['upper_box_Body Mass (g)']", + "scale": "color", + "field": "Species" + }, + {"value": "white"} + ], "tooltip": { "signal": "{\"Max of Body Mass (g)\": format(datum[\"upper_whisker_Body Mass (g)\"], \"\"), \"Q3 of Body Mass (g)\": format(datum[\"upper_box_Body Mass (g)\"], \"\"), \"Median of Body Mass (g)\": format(datum[\"mid_box_Body Mass (g)\"], \"\"), \"Q1 of Body Mass (g)\": format(datum[\"lower_box_Body Mass (g)\"], \"\"), \"Min of Body Mass (g)\": format(datum[\"lower_whisker_Body Mass (g)\"], \"\"), \"Species\": isValid(datum[\"Species\"]) ? datum[\"Species\"] : \"\"+datum[\"Species\"]}" }, diff --git a/examples/compiled/boxplot_tooltip_aggregate.vg.json b/examples/compiled/boxplot_tooltip_aggregate.vg.json index 3639739c61..696cc8bb47 100644 --- a/examples/compiled/boxplot_tooltip_aggregate.vg.json +++ b/examples/compiled/boxplot_tooltip_aggregate.vg.json @@ -220,7 +220,12 @@ "encode": { "update": { "opacity": {"value": 0.7}, - "fill": {"value": "white"}, + "fill": [ + { + "test": "datum['lower_box_Body Mass (g)'] >= datum['upper_box_Body Mass (g)']" + }, + {"value": "white"} + ], "tooltip": {"signal": "format(datum[\"mean_Body Mass (g)\"], \"\")"}, "xc": {"scale": "x", "field": "mid_box_Body Mass (g)"}, "yc": {"scale": "y", "field": "Species", "band": 0.5}, diff --git a/examples/compiled/boxplot_tooltip_not_aggregate.vg.json b/examples/compiled/boxplot_tooltip_not_aggregate.vg.json index fdc830314a..84dbab16c4 100644 --- a/examples/compiled/boxplot_tooltip_not_aggregate.vg.json +++ b/examples/compiled/boxplot_tooltip_not_aggregate.vg.json @@ -223,7 +223,12 @@ "encode": { "update": { "opacity": {"value": 0.7}, - "fill": {"value": "white"}, + "fill": [ + { + "test": "datum['lower_box_Body Mass (g)'] >= datum['upper_box_Body Mass (g)']" + }, + {"value": "white"} + ], "tooltip": { "signal": "{\"Max of Body Mass (g)\": format(datum[\"max_Body Mass (g)\"], \"\"), \"Q3 of Body Mass (g)\": format(datum[\"upper_box_Body Mass (g)\"], \"\"), \"Median of Body Mass (g)\": format(datum[\"mid_box_Body Mass (g)\"], \"\"), \"Q1 of Body Mass (g)\": format(datum[\"lower_box_Body Mass (g)\"], \"\"), \"Min of Body Mass (g)\": format(datum[\"min_Body Mass (g)\"], \"\"), \"Species\": isValid(datum[\"Species\"]) ? datum[\"Species\"] : \"\"+datum[\"Species\"]}" }, diff --git a/examples/compiled/layer_boxplot_circle.vg.json b/examples/compiled/layer_boxplot_circle.vg.json index bf1b80bc52..386e8955fb 100644 --- a/examples/compiled/layer_boxplot_circle.vg.json +++ b/examples/compiled/layer_boxplot_circle.vg.json @@ -187,7 +187,10 @@ "encode": { "update": { "opacity": {"value": 0.7}, - "fill": {"value": "white"}, + "fill": [ + {"test": "datum['lower_box_people'] >= datum['upper_box_people']"}, + {"value": "white"} + ], "tooltip": { "signal": "{\"Max of population\": format(datum[\"max_people\"], \"\"), \"Q3 of population\": format(datum[\"upper_box_people\"], \"\"), \"Median of population\": format(datum[\"mid_box_people\"], \"\"), \"Q1 of population\": format(datum[\"lower_box_people\"], \"\"), \"Min of population\": format(datum[\"min_people\"], \"\"), \"age\": isValid(datum[\"age\"]) ? datum[\"age\"] : \"\"+datum[\"age\"]}" }, diff --git a/examples/specs/normalized/boxplot_1D_horizontal_custom_mark_normalized.vl.json b/examples/specs/normalized/boxplot_1D_horizontal_custom_mark_normalized.vl.json index c7f8120a72..fa364a348a 100644 --- a/examples/specs/normalized/boxplot_1D_horizontal_custom_mark_normalized.vl.json +++ b/examples/specs/normalized/boxplot_1D_horizontal_custom_mark_normalized.vl.json @@ -269,6 +269,11 @@ "title": "Body Mass (g)", "scale": {"zero": false} }, + "color": { + "condition": { + "test": "datum['lower_box_Body Mass (g)'] >= datum['upper_box_Body Mass (g)']" + } + }, "tooltip": [ { "field": "max_Body Mass (g)", diff --git a/examples/specs/normalized/boxplot_1D_horizontal_explicit_normalized.vl.json b/examples/specs/normalized/boxplot_1D_horizontal_explicit_normalized.vl.json index 7f5e5ba217..9eeb8acce6 100644 --- a/examples/specs/normalized/boxplot_1D_horizontal_explicit_normalized.vl.json +++ b/examples/specs/normalized/boxplot_1D_horizontal_explicit_normalized.vl.json @@ -209,6 +209,11 @@ "title": "Body Mass (g)", "scale": {"zero": false} }, + "color": { + "condition": { + "test": "datum['lower_box_Body Mass (g)'] >= datum['upper_box_Body Mass (g)']" + } + }, "tooltip": [ { "field": "max_Body Mass (g)", diff --git a/examples/specs/normalized/boxplot_1D_horizontal_normalized.vl.json b/examples/specs/normalized/boxplot_1D_horizontal_normalized.vl.json index 7f5e5ba217..9eeb8acce6 100644 --- a/examples/specs/normalized/boxplot_1D_horizontal_normalized.vl.json +++ b/examples/specs/normalized/boxplot_1D_horizontal_normalized.vl.json @@ -209,6 +209,11 @@ "title": "Body Mass (g)", "scale": {"zero": false} }, + "color": { + "condition": { + "test": "datum['lower_box_Body Mass (g)'] >= datum['upper_box_Body Mass (g)']" + } + }, "tooltip": [ { "field": "max_Body Mass (g)", diff --git a/examples/specs/normalized/boxplot_1D_vertical_normalized.vl.json b/examples/specs/normalized/boxplot_1D_vertical_normalized.vl.json index 32161bd1e8..2d4af81c94 100644 --- a/examples/specs/normalized/boxplot_1D_vertical_normalized.vl.json +++ b/examples/specs/normalized/boxplot_1D_vertical_normalized.vl.json @@ -209,6 +209,11 @@ "title": "Body Mass (g)", "scale": {"zero": false} }, + "color": { + "condition": { + "test": "datum['lower_box_Body Mass (g)'] >= datum['upper_box_Body Mass (g)']" + } + }, "tooltip": [ { "field": "max_Body Mass (g)", diff --git a/examples/specs/normalized/boxplot_2D_horizontal_color_size_normalized.vl.json b/examples/specs/normalized/boxplot_2D_horizontal_color_size_normalized.vl.json index 427ef196b8..e7c86be774 100644 --- a/examples/specs/normalized/boxplot_2D_horizontal_color_size_normalized.vl.json +++ b/examples/specs/normalized/boxplot_2D_horizontal_color_size_normalized.vl.json @@ -221,6 +221,12 @@ }, "y": {"field": "Species", "type": "nominal"}, "size": {"value": 10}, + "color": { + "condition": { + "test": "datum['lower_box_Body Mass (g)'] >= datum['upper_box_Body Mass (g)']", + "value": "teal" + } + }, "tooltip": [ { "field": "max_Body Mass (g)", diff --git a/examples/specs/normalized/boxplot_2D_horizontal_normalized.vl.json b/examples/specs/normalized/boxplot_2D_horizontal_normalized.vl.json index 204779636f..c9f12d5df1 100644 --- a/examples/specs/normalized/boxplot_2D_horizontal_normalized.vl.json +++ b/examples/specs/normalized/boxplot_2D_horizontal_normalized.vl.json @@ -217,6 +217,11 @@ "scale": {"zero": false} }, "y": {"field": "Species", "type": "nominal"}, + "color": { + "condition": { + "test": "datum['lower_box_Body Mass (g)'] >= datum['upper_box_Body Mass (g)']" + } + }, "tooltip": [ { "field": "max_Body Mass (g)", diff --git a/examples/specs/normalized/boxplot_2D_vertical_normalized.vl.json b/examples/specs/normalized/boxplot_2D_vertical_normalized.vl.json index f8e447b54a..6acebbfc1b 100644 --- a/examples/specs/normalized/boxplot_2D_vertical_normalized.vl.json +++ b/examples/specs/normalized/boxplot_2D_vertical_normalized.vl.json @@ -219,6 +219,14 @@ "scale": {"zero": false} }, "x": {"field": "Species", "type": "nominal"}, + "color": { + "condition": { + "test": "datum['lower_box_Body Mass (g)'] >= datum['upper_box_Body Mass (g)']", + "field": "Species", + "type": "nominal", + "legend": null + } + }, "tooltip": [ { "field": "max_Body Mass (g)", diff --git a/examples/specs/normalized/boxplot_2D_vertical_single_per_group_color_normalized.vl.json b/examples/specs/normalized/boxplot_2D_vertical_single_per_group_color_normalized.vl.json new file mode 100644 index 0000000000..9f55ed691b --- /dev/null +++ b/examples/specs/normalized/boxplot_2D_vertical_single_per_group_color_normalized.vl.json @@ -0,0 +1,215 @@ +{ + "$schema": "https://vega.github.io/schema/vega-lite/v5.json", + "description": "A simple bar chart with embedded data.", + "data": { + "values": [{"a": "A", "b": 28}, {"a": "A", "b": 30}, {"a": "B", "b": 55}] + }, + "layer": [ + { + "transform": [ + { + "joinaggregate": [ + {"op": "q1", "field": "b", "as": "lower_box_b"}, + {"op": "q3", "field": "b", "as": "upper_box_b"} + ], + "groupby": ["a", "a"] + } + ], + "layer": [ + { + "transform": [ + { + "filter": "(datum[\"b\"] < datum[\"lower_box_b\"] - 1.5 * (datum[\"upper_box_b\"] - datum[\"lower_box_b\"])) || (datum[\"b\"] > datum[\"upper_box_b\"] + 1.5 * (datum[\"upper_box_b\"] - datum[\"lower_box_b\"]))" + } + ], + "mark": {"type": "point", "style": "boxplot-outliers"}, + "encoding": { + "y": {"field": "b", "type": "quantitative", "title": "b"}, + "x": {"field": "a", "type": "nominal", "axis": {"labelAngle": 0}}, + "color": {"field": "a", "type": "nominal"} + } + }, + { + "transform": [ + { + "filter": "(datum[\"lower_box_b\"] - 1.5 * (datum[\"upper_box_b\"] - datum[\"lower_box_b\"]) <= datum[\"b\"]) && (datum[\"b\"] <= datum[\"upper_box_b\"] + 1.5 * (datum[\"upper_box_b\"] - datum[\"lower_box_b\"]))" + }, + { + "aggregate": [ + {"op": "min", "field": "b", "as": "lower_whisker_b"}, + {"op": "max", "field": "b", "as": "upper_whisker_b"}, + {"op": "min", "field": "lower_box_b", "as": "lower_box_b"}, + {"op": "max", "field": "upper_box_b", "as": "upper_box_b"} + ], + "groupby": ["a", "a"] + } + ], + "layer": [ + { + "mark": { + "type": "rule", + "invalid": null, + "aria": false, + "style": "boxplot-rule" + }, + "encoding": { + "y": { + "field": "lower_whisker_b", + "type": "quantitative", + "title": "b" + }, + "y2": {"field": "lower_box_b"}, + "x": { + "field": "a", + "type": "nominal", + "axis": {"labelAngle": 0} + }, + "tooltip": [ + { + "field": "upper_whisker_b", + "type": "quantitative", + "title": "Upper Whisker of b" + }, + { + "field": "lower_whisker_b", + "type": "quantitative", + "title": "Lower Whisker of b" + }, + {"field": "a", "type": "nominal"} + ] + } + }, + { + "mark": { + "type": "rule", + "invalid": null, + "aria": false, + "style": "boxplot-rule" + }, + "encoding": { + "y": { + "field": "upper_box_b", + "type": "quantitative", + "title": "b" + }, + "y2": {"field": "upper_whisker_b"}, + "x": { + "field": "a", + "type": "nominal", + "axis": {"labelAngle": 0} + }, + "tooltip": [ + { + "field": "upper_whisker_b", + "type": "quantitative", + "title": "Upper Whisker of b" + }, + { + "field": "lower_whisker_b", + "type": "quantitative", + "title": "Lower Whisker of b" + }, + {"field": "a", "type": "nominal"} + ] + } + } + ] + } + ] + }, + { + "transform": [ + { + "aggregate": [ + {"op": "q1", "field": "b", "as": "lower_box_b"}, + {"op": "q3", "field": "b", "as": "upper_box_b"}, + {"op": "median", "field": "b", "as": "mid_box_b"}, + {"op": "min", "field": "b", "as": "min_b"}, + {"op": "max", "field": "b", "as": "max_b"} + ], + "groupby": ["a", "a"] + } + ], + "layer": [ + { + "mark": { + "type": "bar", + "size": 14, + "orient": "vertical", + "invalid": null, + "ariaRoleDescription": "box", + "style": "boxplot-box" + }, + "encoding": { + "y": {"field": "lower_box_b", "type": "quantitative", "title": "b"}, + "y2": {"field": "upper_box_b"}, + "x": {"field": "a", "type": "nominal", "axis": {"labelAngle": 0}}, + "color": {"field": "a", "type": "nominal"}, + "tooltip": [ + {"field": "max_b", "type": "quantitative", "title": "Max of b"}, + { + "field": "upper_box_b", + "type": "quantitative", + "title": "Q3 of b" + }, + { + "field": "mid_box_b", + "type": "quantitative", + "title": "Median of b" + }, + { + "field": "lower_box_b", + "type": "quantitative", + "title": "Q1 of b" + }, + {"field": "min_b", "type": "quantitative", "title": "Min of b"}, + {"field": "a", "type": "nominal"} + ] + } + }, + { + "mark": { + "color": "white", + "type": "tick", + "invalid": null, + "size": 14, + "orient": "horizontal", + "aria": false, + "style": "boxplot-median" + }, + "encoding": { + "y": {"field": "mid_box_b", "type": "quantitative", "title": "b"}, + "x": {"field": "a", "type": "nominal", "axis": {"labelAngle": 0}}, + "color": { + "condition": { + "test": "datum['lower_box_b'] >= datum['upper_box_b']", + "field": "a", + "type": "nominal" + } + }, + "tooltip": [ + {"field": "max_b", "type": "quantitative", "title": "Max of b"}, + { + "field": "upper_box_b", + "type": "quantitative", + "title": "Q3 of b" + }, + { + "field": "mid_box_b", + "type": "quantitative", + "title": "Median of b" + }, + { + "field": "lower_box_b", + "type": "quantitative", + "title": "Q1 of b" + }, + {"field": "min_b", "type": "quantitative", "title": "Min of b"}, + {"field": "a", "type": "nominal"} + ] + } + } + ] + } + ] +} \ No newline at end of file diff --git a/examples/specs/normalized/boxplot_2D_vertical_single_per_group_normalized.vl.json b/examples/specs/normalized/boxplot_2D_vertical_single_per_group_normalized.vl.json index a041df16a8..cc4f271410 100644 --- a/examples/specs/normalized/boxplot_2D_vertical_single_per_group_normalized.vl.json +++ b/examples/specs/normalized/boxplot_2D_vertical_single_per_group_normalized.vl.json @@ -178,6 +178,11 @@ "encoding": { "y": {"field": "mid_box_b", "type": "quantitative", "title": "b"}, "x": {"field": "a", "type": "nominal", "axis": {"labelAngle": 0}}, + "color": { + "condition": { + "test": "datum['lower_box_b'] >= datum['upper_box_b']" + } + }, "tooltip": [ {"field": "max_b", "type": "quantitative", "title": "Max of b"}, { diff --git a/examples/specs/normalized/boxplot_groupped_normalized.vl.json b/examples/specs/normalized/boxplot_groupped_normalized.vl.json index b8e359d43d..668b0f1257 100644 --- a/examples/specs/normalized/boxplot_groupped_normalized.vl.json +++ b/examples/specs/normalized/boxplot_groupped_normalized.vl.json @@ -222,6 +222,13 @@ }, "x": {"field": "Cylinders", "type": "nominal"}, "xOffset": {"field": "Origin", "type": "nominal"}, + "color": { + "condition": { + "test": "datum['lower_box_Acceleration'] >= datum['upper_box_Acceleration']", + "field": "Origin", + "type": "nominal" + } + }, "tooltip": [ { "field": "max_Acceleration", diff --git a/examples/specs/normalized/boxplot_minmax_2D_horizontal_custom_midtick_color_normalized.vl.json b/examples/specs/normalized/boxplot_minmax_2D_horizontal_custom_midtick_color_normalized.vl.json index 2e4c5232b2..20f6802356 100644 --- a/examples/specs/normalized/boxplot_minmax_2D_horizontal_custom_midtick_color_normalized.vl.json +++ b/examples/specs/normalized/boxplot_minmax_2D_horizontal_custom_midtick_color_normalized.vl.json @@ -174,6 +174,11 @@ "scale": {"zero": false} }, "y": {"field": "Species", "type": "nominal"}, + "color": { + "condition": { + "test": "datum['lower_box_Body Mass (g)'] >= datum['upper_box_Body Mass (g)']" + } + }, "tooltip": [ { "field": "upper_whisker_Body Mass (g)", diff --git a/examples/specs/normalized/boxplot_minmax_2D_horizontal_normalized.vl.json b/examples/specs/normalized/boxplot_minmax_2D_horizontal_normalized.vl.json index 0276d49ba5..a2bd095aa2 100644 --- a/examples/specs/normalized/boxplot_minmax_2D_horizontal_normalized.vl.json +++ b/examples/specs/normalized/boxplot_minmax_2D_horizontal_normalized.vl.json @@ -173,6 +173,11 @@ "scale": {"zero": false} }, "y": {"field": "Species", "type": "nominal"}, + "color": { + "condition": { + "test": "datum['lower_box_Body Mass (g)'] >= datum['upper_box_Body Mass (g)']" + } + }, "tooltip": [ { "field": "upper_whisker_Body Mass (g)", diff --git a/examples/specs/normalized/boxplot_minmax_2D_vertical_normalized.vl.json b/examples/specs/normalized/boxplot_minmax_2D_vertical_normalized.vl.json index 2e73bc3735..fbea4bbf68 100644 --- a/examples/specs/normalized/boxplot_minmax_2D_vertical_normalized.vl.json +++ b/examples/specs/normalized/boxplot_minmax_2D_vertical_normalized.vl.json @@ -174,6 +174,14 @@ "scale": {"zero": false} }, "x": {"field": "Species", "type": "nominal"}, + "color": { + "condition": { + "test": "datum['lower_box_Body Mass (g)'] >= datum['upper_box_Body Mass (g)']", + "field": "Species", + "type": "nominal", + "legend": null + } + }, "tooltip": [ { "field": "upper_whisker_Body Mass (g)", diff --git a/examples/specs/normalized/boxplot_tooltip_aggregate_normalized.vl.json b/examples/specs/normalized/boxplot_tooltip_aggregate_normalized.vl.json index a98791a2ab..0d8664fc53 100644 --- a/examples/specs/normalized/boxplot_tooltip_aggregate_normalized.vl.json +++ b/examples/specs/normalized/boxplot_tooltip_aggregate_normalized.vl.json @@ -192,6 +192,11 @@ "title": "Mean of Body Mass (g)", "type": "quantitative", "field": "mean_Body Mass (g)" + }, + "color": { + "condition": { + "test": "datum['lower_box_Body Mass (g)'] >= datum['upper_box_Body Mass (g)']" + } } } } diff --git a/examples/specs/normalized/boxplot_tooltip_not_aggregate_normalized.vl.json b/examples/specs/normalized/boxplot_tooltip_not_aggregate_normalized.vl.json index 6284901903..e0825b8d5d 100644 --- a/examples/specs/normalized/boxplot_tooltip_not_aggregate_normalized.vl.json +++ b/examples/specs/normalized/boxplot_tooltip_not_aggregate_normalized.vl.json @@ -218,6 +218,11 @@ "scale": {"zero": false} }, "y": {"field": "Species", "type": "nominal"}, + "color": { + "condition": { + "test": "datum['lower_box_Body Mass (g)'] >= datum['upper_box_Body Mass (g)']" + } + }, "tooltip": [ { "field": "max_Body Mass (g)", diff --git a/examples/specs/normalized/layer_boxplot_circle_normalized.vl.json b/examples/specs/normalized/layer_boxplot_circle_normalized.vl.json index e389345385..ac597db0dc 100644 --- a/examples/specs/normalized/layer_boxplot_circle_normalized.vl.json +++ b/examples/specs/normalized/layer_boxplot_circle_normalized.vl.json @@ -165,6 +165,11 @@ "title": "population" }, "y": {"field": "age", "type": "ordinal"}, + "color": { + "condition": { + "test": "datum['lower_box_people'] >= datum['upper_box_people']" + } + }, "tooltip": [ { "field": "max_people",