Vega边缘捆绑(定向)-改变每个边缘的厚度以显示连接强度



我希望根据使用边缘束可视化

https://vega.github.io/editor/#/examples/vega/edge-捆绑

然而,在该示例中,所有定向边缘都具有均匀的厚度。

相反,我需要生成不同厚度的边来说明节点之间关系的强度。

我设想将该厚度传递到模型中,以便JSON在https://github.com/vega/vega-datasets/blob/master/data/flare-dependencies.json

将进行调整,使当前定义的边缘为:

{
"source": 190,
"target": 4
},

将被定义为:

{
"source": 190,
"target": 4,
"edgeWeight": 23
},

这可能吗?我确实尝试过通过使用value传递两个简化的JSON数据集进行实验,但不知道如何输入";edgeWeight";变量添加到"marks"中的行定义。

你知道我该怎么做吗?

问候,

Simon

我得到了如下答案:

首先添加一个公式,将flare.json数据集的大小值附加为字段"strokeWidth",方法是在示例中的第90行写入:

{
"type": "formula",
"expr":  datum.size/10000",
"as": "strokeWidth"
},

接下来,在标记中,将edgebundle中每条边的strokeWidth值设置为列中的相关"strokeWidth",该列现在通过在上述更改后的第176行写入该值而创建:

"strokeWidth": {"field": "strokeWidth"}

在此之后,图表应该使用由该"大小"变量定义的厚度的边进行渲染。注意,在这个例子中,我必须将原始数据集中的"大小"值缩放10000,才能将线条设置为合理的厚度。

在实践中,我会在将数据呈现给Vega之前对其进行缩放。

最新更新