数据过滤器适用于 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" }
},
在 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" }
},