简体   繁体   English

OECD API 的 Vega-Lite 图表

[英]Vega-Lite chart from OECD API

I have an api which I would like to use directly within Vegalite, in order for the chart to update automatically.我有一个 api,我想直接在 Vegalite 中使用它,以便图表自动更新。 https://stats.oecd.org/SDMX-JSON/data/REVGBR/TOTALTAX.NES/all?startTime=1965&endTime=2021&dimensionAtObservation=allDimensions https://stats.oecd.org/SDMX-JSON/data/REVGBR/TOTALTAX.NES/all?startTime=1965&endTime=2021&dimensionAtObservation=allDimensions

However the api doesn't seem to be in a pleasant format.然而,api 的格式似乎并不令人满意。

{
  "$schema": "https://vega.github.io/schema/vega-lite/v5.2.json",
  "data": {
    "url": "https://stats.oecd.org/SDMX-JSON/data/REV/NES.TOTALTAX.TAXGDP.OAVG?contentType=json",
    "format": {
      "type": "json",
      "property": "dataSets[0].series['0:0:0:0'].observations"
    },
    "transform": [
      {
        "type": "formula",
        "as": "year",
        "expr": "parseInt(datum.key)"
      },
      {
        "type": "formula",
        "as": "Tax_revenue",
        "expr": "datum.value[0]"
      }
    ]
  },
  "mark": "line",
  "encoding": {
    "x": {"field": "year", "type": "temporal"},
    "y": {"field": "Tax_revenue", "type": "quantitative"}
  }
}

When looking at the data viewer, all that is shown is the values, without the years.查看数据查看器时,显示的只是数值,没有年份。 The values however are not clean, eg [24.855,null]然而,这些值并不干净,例如 [24.855,null]

Is it even possible to get this api to work within vegalite?甚至有可能让这个 api 在 vegalite 中工作吗?

It is possible but you need to make assumptions.这是可能的,但你需要做出假设。 As you know the query to the API starts with 1965, you can use something like this assuming the years are continuous.如您所知,对 API 的查询从 1965 年开始,假设年份是连续的,您可以使用类似的查询。

在此处输入图像描述

{
  "$schema": "https://vega.github.io/schema/vega-lite/v5.2.json",
  "data": {
    "name": "api",
    "url": "https://stats.oecd.org/SDMX-JSON/data/REV/NES.TOTALTAX.TAXGDP.OAVG?contentType=json",
    "format": {
      "type": "json",
      "property": "dataSets[0].series['0:0:0:0'].observations"
    }
  },
  "transform": [
    {"fold": ["0", "1", "2", "3","4","5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35", "36", "37", "38", "39", "40", "41", "42", "43", "44", "45", "46", "47", "48", "49", "50", "51", "52", "53", "54", "55"]},
    {"calculate": "parseInt( datum.key) + 1965", "as": "year"},
    {"calculate": "datum.value[0]", "as": "Tax_revenue"}
  ],
  "mark": "line",
  "encoding": {
    "x": {"field": "year", "type": "nominal"},
    "y": {"field": "Tax_revenue", "type": "quantitative"}
  }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM