vega-lite: как указать дату в JSON как отдельные поля, содержащие номера года, месяца и дня? - PullRequest
0 голосов
/ 23 февраля 2019

Мои данные JSON представляют собой список объектов, каждый объект содержит дату в следующем формате:

  "date" : {
    "year" : 2019,
    "month" : 2,
    "day" : 17
  },

Как мне сказать Vega-lite, что это дата?Я работал над этим, создав еще одно поле дня, которое представляет собой строку, объединяющую эти три поля, и использовал:

    "format" : {
      "parse" : {
        "day" : "date: '%Y %m %d'"
      }

Но я хотел бы иметь возможность просто использовать существующие 3 поля ....

1 Ответ

0 голосов
/ 23 февраля 2019

Вы можете сделать это с помощью вычисления вычисления вместе с выражением datetime.Например ( ссылка на vega-редактор ):

{
  "data": {
    "values": [
      {"date": {"year": 2019, "month": 2, "day": 15}, "val": 1},
      {"date": {"year": 2019, "month": 2, "day": 16}, "val": 2},
      {"date": {"year": 2019, "month": 2, "day": 17}, "val": 4},
      {"date": {"year": 2019, "month": 2, "day": 18}, "val": 3},
      {"date": {"year": 2019, "month": 2, "day": 19}, "val": 5},
      {"date": {"year": 2019, "month": 2, "day": 20}, "val": 6}
    ]
  },
  "transform": [
    {
      "calculate": "datetime(datum.date.year, datum.date.month, datum.date.day)",
      "as": "combined"
    }
  ],
  "mark": "area",
  "encoding": {
    "x": {"field": "combined", "type": "temporal"},
    "y": {"field": "val", "type": "quantitative"}
  }
}

enter image description here

...