mattijn
4/7/2020 - 9:11 AM

vg5_prob_wdepth_simp.json

{
  "$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"}
            }
          }
        }
      ]
    }
  ]
}