Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/466.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 通过json指定D3力图参数_Javascript_Json_Svg_D3.js_Force Layout - Fatal编程技术网

Javascript 通过json指定D3力图参数

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}, {

我试图在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},
    {"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}