为给定的D3力布局使用多个数据集

时间:2013-08-16 14:46:29

标签: d3.js force-layout

我从D3开始并遇到以下问题:

我为链接和节点创建了一个方向力布局绑定JSON数据,其中数据链接是:

{
    { "source":"s1" , "target":"t1", "type_link"= "type1"},
    { "source":"s2" , "target":"t2", "type_link"= "type2"}
    ...
}

...其中“source”和“target”标识每个链接两侧的节点。

我需要将其他数据绑定并可视化到先前力布局的每个节点(无需向布局添加或删除节点)。将从另一个JSON文件为每个现有节点加载新数据:

{
    { "node_id": "s1", value: {JSON object} //with additional data for node "s1"},
    { "node_id": "t1", value: {JSON object} //with additional data for node "t1"}
    ...
}

所以,我想将'value'字段数据(所以,JSON对象)附加到每个'node_id'节点。

我认为我可以通过将每个节点绑定到一个数据集(JSON对象),然后将每个节点(不是圆圈)附加到JSON对象中的许多SVG文本(可能使用。 但我在https://github.com/mbostock/d3/wiki/Force-Layout中读到“给定的力布局实例只能用于单个数据集”,所以我很困惑。

拜托,你能解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

单个数据集意味着您无法使用不同的节点和链接对使用力布局的给定实例,因为力布局将在节点和链接中存储其他属性。例如,如果您有nodes1links1nodes2links2,则必须为每个(节点,链接)对force1创建强制布局和force2

可以在此处找到强制布局的示例:http://bl.ocks.org/mbostock/4062045