无法连接到json对象,无法在d3强制定向布局中设置勾号函数

无法连接到json对象,无法在d3强制定向布局中设置勾号函数,json,d3.js,svg,Json,D3.js,Svg,我是d3新手,通常都是编码。但现在我正致力于构建一个基于json数据的部队指挥网络。我需要做的是为我拥有的各种json对象创建svg圆圈 我试着根据json文件中扇区下的6个类别中的每一个制作6个大圆圈,然后根据每个对象的名称制作小圆圈(json文件中有47个)。但我不知道如何在json数组中调用它们 以下是json数据的示例: [ { “名称”:“弗吉尼亚海洋科学研究所海岸资源管理中心”, “部门”:“学术界”, “链接”:http://ccrm.vims.edu/", “说明”:“弗吉尼亚

我是d3新手,通常都是编码。但现在我正致力于构建一个基于json数据的部队指挥网络。我需要做的是为我拥有的各种json对象创建svg圆圈

我试着根据json文件中扇区下的6个类别中的每一个制作6个大圆圈,然后根据每个对象的名称制作小圆圈(json文件中有47个)。但我不知道如何在json数组中调用它们

以下是json数据的示例:

[
{
“名称”:“弗吉尼亚海洋科学研究所海岸资源管理中心”,
“部门”:“学术界”,
“链接”:http://ccrm.vims.edu/",
“说明”:“弗吉尼亚海洋科学研究所——海岸资源管理中心(CCRM)开发并支持海岸带资源的综合和适应性管理。为了完成这项任务,该中心开展研究、提供咨询服务和开展外展教育。”,
“联系人”:“卡尔·赫什纳”\ncarl@vims.edu\n804-684-7387“,
“报告”:“潮水观测(以及实时风暴潮观测和预报系统)是VIMS研究人员开发的在线实时水位监测工具。它提供的信息有助于预测一个地区沿海洪水的规模,并允许比较切萨皮克湾内9个地点的风暴潮\nhttp://www.vims.edu/bayinfo/tidewatch/index.php\n\n潮水的重复洪水报告以及东岸地区\nhttp://www.ccrm.vims.edu/recurrent_flooding/Recurrent_Flooding_Study_web.pdf\n\n综合海岸资源管理门户-弗吉尼亚州潮汐海岸线管理计划指南\nhttp://www.ccrm.vims.edu/ccrmp/index.html\n\n研究生态影响和适应工具的各种研究项目离子计划\nhttp://ccrm.vims.edu/coastal_zone/climate_change/index.html\n\n制定地方适应计划“
},
{
“名称”:“弗吉尼亚理工大学水资源中心”,
“部门”:“学术界”,
“链接”:http://vawatercentralnewsgrouper.wordpress.com/category/climate-change/\n\nhttp://vwrrc.vt.edu/projects.html\n\n“,
“说明”:"弗吉尼亚理工大学主办了弗吉尼亚水资源研究中心,该中心是1964年《联邦水资源研究法案》在全国设立的54个水资源研究机构之一。弗吉尼亚水资源研究中心与弗吉尼亚州水资源部合作建立了一个雨水最佳管理实践网站f环境质量,并在水新闻博客上编辑气候变化文章和资料。弗吉尼亚理工大学�美国环境和水资源工程项目一直在研究海平面上升和气候变化对沿海洪水的影响,并引入了沿海工程的新重点。”,
“联系人”:“Stephen Schoenholtz\nstephen。schoenholtz@vt.edu\n540-231-0711“,
“报告”:”
},
{
“名称”:“后海湾修复基金会”,
“部门”:“非政府组织”,
“链接”:http://www.bbrf.org/",
“描述”:“后湾修复基金会”正在进行几个海平面上升项目。BBRF最近通过弗吉尼亚迁徙水禽邮票赠款项目获得了一笔赠款,与美国鱼类和野生动物服务局和后海湾国家野生动物保护区合作,以恢复340英亩高质量的应急和森林湿地栖息地,并维持260英亩的新湿地通过翻修被穴居动物和侧翼破坏的两个水控结构,清理淹没的水生植被。此外,BBRF将通过飓风桑迪恢复力赠款计划获得资金,与多个组织合作,恢复3783英亩的森林湿地,并建立1650英尺的活海岸线(河口)位于弗吉尼亚州后海湾河口和分水岭。BBRF每年春天还主办分水岭论坛,提供有关弗吉尼亚海滩健康的最新信息�s流域,包括海平面上升。”,
“联系人”:“Shannon Davis\n Shannon。davis@bbrf.org",
“报告”:”
},
{
“名称”:“切萨皮克气候行动网络”,
“部门”:“非政府组织”,
“链接”:http://chesapeakeclimate.org/",
“描述”:“切萨皮克气候行动网络已经启动了他们的弗吉尼亚安全海岸运动,该运动将大汉普顿路地区视为该国的一部分�该运动要求立即采取适应措施,保护沿海社区,减少碳排放,以减缓海平面上升。”,
“联系人”:“迈克·蒂德威尔”\nmtidwell@chesapeakeclimate.org",
“报告”:”
}

]
我尝试了你的代码。希望这能有所帮助。 对于不同大小的圆,不需要创建单独的圆变量,只需使用类型更改半径即可

var w = 600,
    h = 400;

    var svg = d3.select("body").append("svg")
       .attr("height", w)
       .attr("width", h);

    var data; // a global

    var force = d3.layout.force()
        .size([w,h])
        .linkDistance([150])
        .charge([-150])
        .gravity(0.1)
        .on("tick", tick);

var svg = d3.select("body").append("svg")
    .attr("width", w)
    .style("border", "1px solid black")
    .attr("height", h);

var circles = svg.selectAll(".node");

   d3.json("https://api.myjson.com/bins/1rnhq", function(error, json) {
        if (error) return console.warn(error);
        data = json;
        console.log(data);

        force.nodes(data)
          .start();

// Update nodes.
  circles = circles.data(data);

  circles.exit().remove();


  var nodeEnter = circles.enter().append("g")
      .attr("class", "node")
      .style("fill", "#3182bd")
      .call(force.drag);

  nodeEnter.append("circle")
            .attr("r",  function(d) { return d.sector == "Academia" ? 20 :10 });

    });

function tick() {
  circles.attr("transform", function(d) { return "translate(" + d.x + "," + d.y + ")"; });
}

您在上面粘贴的Json与您想要的不同。它没有类别,我也看不到任何47个对象名称。请您用您想要的内容和您取得的成绩重新表述这个问题。总的来说,问题规范对任何人来说都不清楚:)好的,非常感谢!我的47个json对象中的每一个都有节点。不过,我需要做的是为不同类型的部门:学术界、联邦、非政府组织、联邦、军事和州立法机构再创建6个节点。以下是json数据:你知道我如何做到这一点吗?函数(d){return d.sector==“academy”?20:10}…你需要用不同的半径定义这里的所有类型。根据我在D3方面的经验,我这样做了,语法是什么样的?与我在前面的评论中添加的一样,它是这样的…attr(“r”,function(d){return d.sector==“academy”?20:“Commonwealth”?10:5;)