vega-lite:如何将JSON中的日期指定为包含年,月和日数的单独字段?

dcj*_*dcj 6 d3.js vega vega-lite

我的JSON数据是一个对象列表,每个对象包含这种格式的日期:

  "date" : {
    "year" : 2019,
    "month" : 2,
    "day" : 17
  },
Run Code Online (Sandbox Code Playgroud)

我怎么能告诉Vega-lite这是一个约会?我通过创建另一个字段来解决这个问题,该字段是连接这三个字段的字符串,并使用:

    "format" : {
      "parse" : {
        "day" : "date: '%Y %m %d'"
      }
Run Code Online (Sandbox Code Playgroud)

但我希望能够使用现有的3个领域....

jak*_*vdp 5

您可以通过计算转换以及表达式来完成此操作datetime。例如(vega-editor 链接):

{
  "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"}
  }
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述