From a7f7d3f1cc8ff6aae30b36b950bf658f60cfd779 Mon Sep 17 00:00:00 2001 From: Younghoon Kim Date: Mon, 10 Oct 2022 21:55:52 -0700 Subject: [PATCH 1/3] add example --- examples/compiled/area_overlay_with_y2.png | Bin 0 -> 15783 bytes examples/compiled/area_overlay_with_y2.svg | 1 + .../compiled/area_overlay_with_y2.vg.json | 163 ++++++++++++++++++ examples/specs/area_overlay_with_y2.vl.json | 12 ++ .../area_overlay_with_y2_normalized.vl.json | 32 ++++ 5 files changed, 208 insertions(+) create mode 100644 examples/compiled/area_overlay_with_y2.png create mode 100644 examples/compiled/area_overlay_with_y2.svg create mode 100644 examples/compiled/area_overlay_with_y2.vg.json create mode 100644 examples/specs/area_overlay_with_y2.vl.json create mode 100644 examples/specs/normalized/area_overlay_with_y2_normalized.vl.json diff --git a/examples/compiled/area_overlay_with_y2.png b/examples/compiled/area_overlay_with_y2.png new file mode 100644 index 0000000000000000000000000000000000000000..812a08721974e4196bc67da24071c42a794623f7 GIT binary patch literal 15783 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 literal 0 HcmV?d00001 diff --git a/examples/compiled/area_overlay_with_y2.svg b/examples/compiled/area_overlay_with_y2.svg new file mode 100644 index 0000000000..bd806da83c --- /dev/null +++ b/examples/compiled/area_overlay_with_y2.svg @@ -0,0 +1 @@ +200520062007200820092010date0200400600800price \ No newline at end of file diff --git a/examples/compiled/area_overlay_with_y2.vg.json b/examples/compiled/area_overlay_with_y2.vg.json new file mode 100644 index 0000000000..2345161119 --- /dev/null +++ b/examples/compiled/area_overlay_with_y2.vg.json @@ -0,0 +1,163 @@ +{ + "$schema": "https://vega.github.io/schema/vega/v5.json", + "description": "Google's stock price over time.", + "background": "white", + "padding": 5, + "width": 200, + "height": 200, + "style": "cell", + "data": [ + { + "name": "source_0", + "url": "data/stocks.csv", + "format": {"type": "csv", "parse": {"date": "date"}}, + "transform": [{"type": "filter", "expr": "datum.symbol==='GOOG'"}] + }, + { + "name": "data_0", + "source": "source_0", + "transform": [ + { + "type": "filter", + "expr": "(isDate(datum[\"date\"]) || (isValid(datum[\"date\"]) && isFinite(+datum[\"date\"]))) && isValid(datum[\"price\"]) && isFinite(+datum[\"price\"])" + } + ] + } + ], + "marks": [ + { + "name": "layer_0_marks", + "type": "area", + "style": ["area"], + "sort": {"field": "datum[\"date\"]"}, + "from": {"data": "source_0"}, + "encode": { + "update": { + "opacity": {"value": 0.7}, + "orient": {"value": "vertical"}, + "fill": {"value": "#4c78a8"}, + "description": { + "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}, + "defined": { + "signal": "isValid(datum[\"date\"]) && isFinite(+datum[\"date\"]) && isValid(datum[\"price\"]) && isFinite(+datum[\"price\"])" + } + } + } + }, + { + "name": "layer_1_marks", + "type": "rule", + "style": ["rule"], + "from": {"data": "data_0"}, + "encode": { + "update": { + "stroke": {"value": "black"}, + "description": { + "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} + } + } + }, + { + "name": "layer_2_marks", + "type": "symbol", + "style": ["point"], + "from": {"data": "data_0"}, + "encode": { + "update": { + "opacity": {"value": 1}, + "fill": {"value": "#4c78a8"}, + "ariaRoleDescription": {"value": "point"}, + "description": { + "signal": "\"date: \" + (timeFormat(datum[\"date\"], '%b %d, %Y')) + \"; price: \" + (format(datum[\"price\"], \"\"))" + }, + "x": {"scale": "x", "field": "date"}, + "y": {"scale": "y", "field": "price"} + } + } + } + ], + "scales": [ + { + "name": "x", + "type": "time", + "domain": { + "fields": [ + {"data": "source_0", "field": "date"}, + {"data": "data_0", "field": "date"} + ] + }, + "range": [0, {"signal": "width"}] + }, + { + "name": "y", + "type": "linear", + "domain": { + "fields": [ + {"data": "source_0", "field": "price"}, + [0], + {"data": "data_0", "field": "price"} + ] + }, + "range": [{"signal": "height"}, 0], + "nice": true, + "zero": true + } + ], + "axes": [ + { + "scale": "x", + "orient": "bottom", + "gridScale": "y", + "grid": true, + "tickCount": {"signal": "ceil(width/40)"}, + "domain": false, + "labels": false, + "aria": false, + "maxExtent": 0, + "minExtent": 0, + "ticks": false, + "zindex": 0 + }, + { + "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": "date", + "labelFlush": true, + "labelOverlap": true, + "tickCount": {"signal": "ceil(width/40)"}, + "zindex": 0 + }, + { + "scale": "y", + "orient": "left", + "grid": false, + "title": "price", + "labelOverlap": true, + "tickCount": {"signal": "ceil(height/40)"}, + "zindex": 0 + } + ] +} diff --git a/examples/specs/area_overlay_with_y2.vl.json b/examples/specs/area_overlay_with_y2.vl.json new file mode 100644 index 0000000000..4f4af3426d --- /dev/null +++ b/examples/specs/area_overlay_with_y2.vl.json @@ -0,0 +1,12 @@ +{ + "$schema": "https://vega.github.io/schema/vega-lite/v5.json", + "description": "Google's stock price over time.", + "data": {"url": "data/stocks.csv"}, + "transform": [{"filter": "datum.symbol==='GOOG'"}], + "mark": {"type": "area", "line": true, "point": true}, + "encoding": { + "x": {"field": "date", "type": "temporal"}, + "y": {"field": "price", "type": "quantitative"}, + "y2": {"datum": 0, "type": "quantitative"} + } +} diff --git a/examples/specs/normalized/area_overlay_with_y2_normalized.vl.json b/examples/specs/normalized/area_overlay_with_y2_normalized.vl.json new file mode 100644 index 0000000000..f85ea25dfa --- /dev/null +++ b/examples/specs/normalized/area_overlay_with_y2_normalized.vl.json @@ -0,0 +1,32 @@ +{ + "$schema": "https://vega.github.io/schema/vega-lite/v5.json", + "description": "Google's stock price over time.", + "data": {"url": "data/stocks.csv"}, + "transform": [{"filter": "datum.symbol==='GOOG'"}], + "layer": [ + { + "mark": {"opacity": 0.7, "type": "area"}, + "encoding": { + "x": {"field": "date", "type": "temporal"}, + "y": {"field": "price", "type": "quantitative"}, + "y2": {"datum": 0, "type": "quantitative"} + } + }, + { + "mark": {"type": "rule"}, + "encoding": { + "x": {"field": "date", "type": "temporal"}, + "y": {"field": "price", "type": "quantitative"}, + "y2": {"datum": 0, "type": "quantitative"} + } + }, + { + "mark": {"type": "point", "opacity": 1, "filled": true}, + "encoding": { + "x": {"field": "date", "type": "temporal"}, + "y": {"field": "price", "type": "quantitative"}, + "y2": {"datum": 0, "type": "quantitative"} + } + } + ] +} \ No newline at end of file From e4fb2859ddd03916f9886812a439c6b1ed076f9c Mon Sep 17 00:00:00 2001 From: Younghoon Kim Date: Mon, 10 Oct 2022 22:04:44 -0700 Subject: [PATCH 2/3] Remove y2/x2 channel for overlaying lines and points --- examples/compiled/area_overlay_with_y2.png | Bin 15783 -> 15049 bytes examples/compiled/area_overlay_with_y2.svg | 2 +- .../compiled/area_overlay_with_y2.vg.json | 13 +++--- .../area_overlay_with_y2_normalized.vl.json | 8 ++-- src/normalize/pathoverlay.ts | 4 +- test/normalize/pathoverlay.test.ts | 42 ++++++++++++++++++ 6 files changed, 56 insertions(+), 13 deletions(-) diff --git a/examples/compiled/area_overlay_with_y2.png b/examples/compiled/area_overlay_with_y2.png index 812a08721974e4196bc67da24071c42a794623f7..8e489363d692733f8c7a5a2e8e8fde9ef02ef2c3 100644 GIT binary patch literal 15049 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 diff --git a/examples/compiled/area_overlay_with_y2.svg b/examples/compiled/area_overlay_with_y2.svg index bd806da83c..0ac6b6cde0 100644 --- a/examples/compiled/area_overlay_with_y2.svg +++ b/examples/compiled/area_overlay_with_y2.svg @@ -1 +1 @@ -200520062007200820092010date0200400600800price \ No newline at end of file +200520062007200820092010date0200400600800price \ No newline at end of file diff --git a/examples/compiled/area_overlay_with_y2.vg.json b/examples/compiled/area_overlay_with_y2.vg.json index 2345161119..1f3b7fd7fa 100644 --- a/examples/compiled/area_overlay_with_y2.vg.json +++ b/examples/compiled/area_overlay_with_y2.vg.json @@ -50,18 +50,21 @@ }, { "name": "layer_1_marks", - "type": "rule", - "style": ["rule"], - "from": {"data": "data_0"}, + "type": "line", + "style": ["line"], + "sort": {"field": "datum[\"date\"]"}, + "from": {"data": "source_0"}, "encode": { "update": { - "stroke": {"value": "black"}, + "stroke": {"value": "#4c78a8"}, "description": { "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} + "defined": { + "signal": "isValid(datum[\"date\"]) && isFinite(+datum[\"date\"]) && isValid(datum[\"price\"]) && isFinite(+datum[\"price\"])" + } } } }, diff --git a/examples/specs/normalized/area_overlay_with_y2_normalized.vl.json b/examples/specs/normalized/area_overlay_with_y2_normalized.vl.json index f85ea25dfa..9052e00bd0 100644 --- a/examples/specs/normalized/area_overlay_with_y2_normalized.vl.json +++ b/examples/specs/normalized/area_overlay_with_y2_normalized.vl.json @@ -13,19 +13,17 @@ } }, { - "mark": {"type": "rule"}, + "mark": {"type": "line"}, "encoding": { "x": {"field": "date", "type": "temporal"}, - "y": {"field": "price", "type": "quantitative"}, - "y2": {"datum": 0, "type": "quantitative"} + "y": {"field": "price", "type": "quantitative"} } }, { "mark": {"type": "point", "opacity": 1, "filled": true}, "encoding": { "x": {"field": "date", "type": "temporal"}, - "y": {"field": "price", "type": "quantitative"}, - "y2": {"datum": 0, "type": "quantitative"} + "y": {"field": "price", "type": "quantitative"} } } ] diff --git a/src/normalize/pathoverlay.ts b/src/normalize/pathoverlay.ts index 333cd2b84c..dd84f40a6d 100644 --- a/src/normalize/pathoverlay.ts +++ b/src/normalize/pathoverlay.ts @@ -151,7 +151,7 @@ export class PathOverlayNormalizer implements NonFacetUnitNormalizer { }); }); + it('correctly normalizes area using y2 with overlay line.', () => { + const spec: TopLevelSpec = { + data: {url: 'data/stocks.csv'}, + mark: 'area', + encoding: { + x: {field: 'date', type: 'temporal'}, + y: {field: 'price', type: 'quantitative'}, + y2: {value: 0, type: 'quantitative'} + }, + config: {area: {line: {}, point: {}}} + }; + const normalizedSpec = normalize(spec); + expect(normalizedSpec).toEqual({ + data: {url: 'data/stocks.csv'}, + layer: [ + { + mark: {type: 'area', opacity: 0.7}, + encoding: { + x: {field: 'date', type: 'temporal'}, + y: {field: 'price', type: 'quantitative'}, + y2: {value: 0, type: 'quantitative'} + } + }, + { + mark: {type: 'line'}, + encoding: { + x: {field: 'date', type: 'temporal'}, + y: {field: 'price', type: 'quantitative', stack: 'zero'} + } + }, + { + mark: {type: 'point', opacity: 1, filled: true}, + encoding: { + x: {field: 'date', type: 'temporal'}, + y: {field: 'price', type: 'quantitative', stack: 'zero'} + } + } + ], + config: {area: {line: {}, point: {}}} + }); + }); + it('correctly normalizes interpolated area with overlay line', () => { const spec: TopLevelSpec = { data: {url: 'data/stocks.csv'}, From 2a80c42cd56aaf665ecbdcf5335412bb07bc5e98 Mon Sep 17 00:00:00 2001 From: Younghoon Kim Date: Tue, 11 Oct 2022 16:36:07 -0700 Subject: [PATCH 3/3] Add comment --- src/normalize/pathoverlay.ts | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/normalize/pathoverlay.ts b/src/normalize/pathoverlay.ts index dd84f40a6d..33e988f7a0 100644 --- a/src/normalize/pathoverlay.ts +++ b/src/normalize/pathoverlay.ts @@ -143,6 +143,11 @@ export class PathOverlayNormalizer implements NonFacetUnitNormalizer