Lars Andersson
Lars Andersson

Reputation: 21

Vega-Lite: Can I merge data sources?

I have time series data in the format:

    "data": {"values":[
    {"time":nnn,"Pressure":1},
    {"time":nnn,"Pressure":2},
    {"time":nnn,"Pressure":3}
    ] }

and another as:

        "data": {"values":[
        {"time":nnn,"Flow":1},
        {"time":nnn,"Flow":2},
        {"time":nnn,"Flow":3}
        ] }

If the time stamp is the same how can I merge it in to one array as this:

        "data": {"values":[

        {"time":nnn,"Pressure":1,"Flow":1},
        {"time":nnn,"Pressure":2,"Flow":2},
        {"time":nnn,"Pressure":3,"Flow":3}

        ] },

Upvotes: 1

Views: 1380

Answers (1)

jakevdp
jakevdp

Reputation: 86330

You can join datasets using a Lookup Transform. Here is a quick example using data similar to what you mentioned in the question (view in vega editor):

{
  "datasets": {
    "data1": [
      {"time": 0, "Pressure": 1},
      {"time": 1, "Pressure": 2},
      {"time": 2, "Pressure": 3}
    ],
    "data2": [
      {"time": 0, "Flow": 1},
      {"time": 1, "Flow": 2},
      {"time": 2, "Flow": 3}
    ]
  },
  "data": {"name": "data1"},
  "transform": [
    {
      "lookup": "time",
      "from": {"data": {"name": "data2"}, "key": "time", "fields": ["Flow"]}
    }
  ],
  "mark": "line",
  "encoding": {
    "x": {"field": "Pressure", "type": "quantitative"},
    "y": {"field": "Flow", "type": "quantitative"}
  }
}

enter image description here

Upvotes: 2

Related Questions