数据过滤器适用于 json 数据但不适用于 csv 数据

Data filter works with json data but not with csv data

this vega 图表中,如果我使用以下 jq 命令下载 flare-dependencies.json 并将其转换为 csv,

jq -r '(map(keys) | add | unique) as $cols | map(. as $row | $cols | map($row[.])) as $rows | $cols, $rows[] | @csv' flare-dependencies.json > flare-dependencies.csv

并把edge-bundling.vg.json文件中对应的数据属性改成:

{
  "name": "dependencies",
  "url": "data/flare-dependencies.json",
  "transform": [
    {
      "type": "formula",
      "expr": "treePath('tree', datum.source, datum.target)",
      "as": "treepath",
      "initonly": true
    }
  ]
},

{
  "name": "dependencies",
  "url": "data/flare-dependencies.csv",
  "format": { "type": "csv" },
  "transform": [
    {
      "type": "formula",
      "expr": "treePath('tree', datum.source, datum.target)",
      "as": "treepath",
      "initonly": true
    }
  ]
},

悬停效果不起作用(悬停时颜色不会改变edges/nodes。

我怀疑这个部分有问题:

  "name": "selected",
  "source": "dependencies",
  "transform": [
    {
      "type": "filter",
      "expr": "datum.source === active || datum.target === active"
    }
  ]

我错过了什么?我该如何解决这个问题?

JSON数据输入;也就是说,文件格式区分字符串和数字数据。 CSV 数据未类型化:所有条目均表示为字符串。

上面的图表规范要求某些字段为数字。将输入数据转换为 CSV 时,必须添加 format 说明符以指定数值数据列的数值类型。

对于此图表,您可以使用以下节点数据:

"format": {
  "type": "tsv",
  "parse": { "id": "number", "name": "string", "parent": "number" }
},

链接数据如下:

"format": {
  "type": "tsv",
  "parse": { "source": "number", "target": "number" }
},