{
"$schema": "https://vega.github.io/schema/vega/v5.json",
"width": 500,
"height": 200,
"signals": [{"name": "sA", "value": "base"}, {"name": "sB", "value": "s1"}],
"data": [
{
"name": "source",
"values": [
{"s": "base", "o": 0, "x": 0, "y": 5},
{"s": "base", "o": 1, "x": 1, "y": 5},
{"s": "base", "o": 2, "x": 1, "y": 2.5},
{"s": "base", "o": 3, "x": 2, "y": 2.5},
{"s": "base", "o": 4, "x": 2, "y": 0},
{"s": "s1", "o": 0, "x": 0, "y": 10},
{"s": "s1", "o": 1, "x": 3, "y": 10},
{"s": "s1", "o": 2, "x": 3, "y": 0},
{"s": "OTHER", "o": 2, "x": 3, "y": 0}
],
"transform": [
{"type": "filter", "expr": "datum.s == sA | datum.s == sB"}
]
},
{
"name": "source_impute",
"source": "source",
"transform": [
{
"type": "impute",
"groupby": ["s"],
"key": "x",
"field": "y",
"method": "value",
"value": null
}
]
},
{
"name": "source_sA",
"source": "source_impute",
"transform": [
{"type": "filter", "expr": "datum.s == sA"},
{"type": "formula", "expr": "null", "as": "y_sB"},
{
"type": "project",
"fields": ["s", "o", "x", "y", "y_sB"],
"as": ["s", "o", "x", "y", "y2"]
}
]
},
{
"name": "source_sB",
"source": "source_impute",
"transform": [
{"type": "filter", "expr": "datum.s == sB"},
{"type": "formula", "expr": "null", "as": "y_sA"},
{
"type": "project",
"fields": ["s", "o", "x", "y_sA", "y"],
"as": ["s", "o", "x", "y", "y2"]
}
]
},
{
"name": "probabilities_area",
"source": ["source_sA", "source_sB"],
"transform": [
{
"type": "collect",
"sort": {"field": ["x", "o"], "order": ["ascending", "ascending"]}
},
{
"type": "window",
"ops": ["prev_value", "prev_value"],
"fields": ["y", "y2"],
"as": ["y", "y2"]
}
]
}
],
"scales": [
{
"name": "xscale",
"type": "linear",
"range": "width",
"domain": {"data": "source", "field": "x"}
},
{
"name": "yscale",
"type": "linear",
"range": "height",
"nice": true,
"zero": true,
"domain": {"data": "source", "field": "y"}
},
{
"name": "color",
"type": "ordinal",
"domain": {"data": "source", "field": "s"},
"range": ["#00A4E4", "#FFA560", "#57E56E", "#FF4747", "#FFF159"]
}
],
"axes": [
{"orient": "bottom", "scale": "xscale"},
{"orient": "left", "scale": "yscale"}
],
"marks": [
{
"type": "area",
"from": {"data": "probabilities_area"},
"encode": {
"update": {
"x": {"scale": "xscale", "field": "x"},
"y": {"scale": "yscale", "field": "y"},
"y2": {"scale": "yscale", "field": "y2"},
"fill": {"value": "goldenrod"},
"fillOpacity": {"value": 0.25}
}
}
},
{
"type": "group",
"sort": {"field": "datum.o"},
"from": {"facet": {"name": "series", "data": "source", "groupby": "s"}},
"marks": [
{
"name": "marks",
"type": "line",
"style": ["line"],
"from": {"data": "series"},
"encode": {
"update": {
"stroke": {"scale": "color", "field": "s"},
"x": {"scale": "xscale", "field": "x"},
"y": {"scale": "yscale", "field": "y"}
}
}
},
{
"name": "points",
"type": "symbol",
"from": {"data": "series"},
"encode": {
"update": {
"x": {"scale": "xscale", "field": "x"},
"y": {"scale": "yscale", "field": "y"},
"shape": {"value": "circle"},
"size": {"value": 60},
"fill": {"scale": "color", "field": "s"}
}
}
}
]
}
]
}