Javascript 通过json指定D3力图参数
我试图在d3.js中创建一个更可重用的force directed network版本。我的想法是能够使用包含数据的json文件来指定网络属性Javascript 通过json指定D3力图参数,javascript,json,svg,d3.js,force-layout,Javascript,Json,Svg,D3.js,Force Layout,我试图在d3.js中创建一个更可重用的force directed network版本。我的想法是能够使用包含数据的json文件来指定网络属性 { "nodes":[ {"name":"Myriel","group":1}, {"name":"Napoleon","group":1}, {"name":"Mlle.Baptistine","group":1}, //etc..... {"name":"Child2","group":10}, {
{
"nodes":[
{"name":"Myriel","group":1},
{"name":"Napoleon","group":1},
{"name":"Mlle.Baptistine","group":1},
//etc.....
{"name":"Child2","group":10},
{"name":"Brujon","group":4},
{"name":"Mme.Hucheloup","group":8}
],
"links":[
{"source":1,"target":0,"value":1},
{"source":2,"target":0,"value":8},
{"source":3,"target":0,"value":10},
//etc....
{"source":76,"target":62,"value":1},
{"source":76,"target":48,"value":1},
{"source":76,"target":58,"value":1}
],
"graph":{"charge":-220,"linkDistance":50}
}
为此,我将对d3.layout.force()的调用移动到json调用中,请参见
然后,我将图形行为指定为
var force = d3.layout.force()
.charge(graph.graph.charge)
.linkDistance(graph.graph.linkDistance)
.size([width, height]);
我的问题是这样做是否正确。目前我能看到的唯一缺点是初始化图表需要更长的时间。有更好的方法吗?我认为这很好,但最好是有JSON数据结构,其中数据和选项是明确分开的。所以我会有一个结构
{“数据”:{“节点”:[],“链接”:[]},“选项”:{“费用”:-220,“链接距离”:50}