使用d3 v5创建图形网络:生成节点之间的链接/边的错误

时间:2019-06-27 17:17:00

标签: javascript json d3.js

我目前正在尝试使用自己的数据复制以下图形网络(https://bl.ocks.org/mapio/53fed7d84cd1812d6a6639ed7aa83868)。我必须与生成节点之间的链接/边缘有关的问题。

错误:

  

未捕获(承诺)错误:missing: B_01_062

是从此行发生的:

.force("link", d3.forceLink(graph.links).id(function (d) { return d.id; }).distance(50).strength(1))

定义图形布局变量的位置。如果您注释掉这条线,则只会生成带有节点的图形。

我尝试将d3.tojson函数返回的图形对象转换为结构如下的javascript对象。

var g = {
    nodesL: [...], 
    linksL: [...]
}

这也不起作用。

以下是示例数据的子集:

{
  "nodes": [
    {
      "id": "Myriel",
      "group": 1
    },
    {
      "id": "Napoleon",
      "group": 1
    },
    {
      "id": "Mlle.Baptistine",
      "group": 1
    },
   ]
  "links": [
      {
      "source": "Napoleon",
      "target": "Myriel",
      "value": 1
    },
    {
      "source": "Mlle.Baptistine",
      "target": "Myriel",
      "value": 8
    },
    {
      "source": "Mme.Magloire",
      "target": "Myriel",
      "value": 10
    },
   ]
}

这是我当前数据的一部分,如下所示:

{
  "nodes": [
    {
      "id": "&=ARMS-CROSS", "Code": "J_01_098", "NeighborhoodDensity": 3}, 
    {
      "id": "&=CLAP", "Code": "J_02_076", "NeighborhoodDensity": 3}, 
    {
      "id": "&=RAISE-HAND", "Code": "H_02_48", "NeighborhoodDensity": 3},

  "links": [
      {
        source: "B_01_062", 
        target: "A_01_002"
      },
      {
        source: "B_03_025", 
        target: "A_01_002"
      },
      {
        source: "C_03_023", 
        target: "A_01_002"
      }
   ]
}

我什至尝试将源值和目标值转换为实际数字。


// convert to a javascript object
    function convertToObj(link_obj) {
        var conv_obj = {}

        // conv_obj.source = link_obj['source'];
        // conv_obj.target = link_obj['target'];

        conv_obj.source = parseInt(link_obj['source'].replace(/\D[^\.]/g, ""));
        conv_obj.target = parseInt(link_obj['target'].replace(/\D[^\.]/g, ""));

        // console.log(conv_obj.source);
        // console.log(conv_obj.target);
        // console.log(conv_obj);

        return conv_obj;
    }

links数组看起来像这样


    links: [
        {
         source: 162, 
         target: 102
        },
        {
         source: 325, 
         target: 102
        },
        {
         source: 323, 
         target: 102
        }
    ]

0 个答案:

没有答案