Uncaught TypeError: не удается прочитать «вес» свойства неопределенного D3.JS

Я пытаюсь отобразить график с помощью D3.JS и получаю эту ошибку.

Я просмотрел это и это ничего не сработало.

перед отправкой своих данных в D3.JS я проверил, и вот мои узлы и ребра

0

{группа: 4, идентификатор: 0, имя: "LATS1"} 1

{группа: 1, идентификатор: 455, имя: "ROCK2"} 2

{группа: 1, идентификатор: 456, имя: "MK13"} 3

{группа: 1, идентификатор: 457, имя: "ПДПК1"} 4

{группа: 1, идентификатор: 458, имя: "AAPK1"} 5

{группа: 1, идентификатор: 459, имя: "STK3"} 6

{группа: 1, идентификатор: 460, имя: "NEK11"} 7

{группа: 1, идентификатор: 461, имя: "LATS1"} 8

{группа: 1, идентификатор: 462, имя: "CDK1"} 9

{группа: 1, идентификатор: 463, имя: "DYRK2"} 10

{группа: 1, идентификатор: 464, имя: "NUAK1"} 11

{группа: 2, идентификатор: 1, имя: "MSX2"} 12

{группа: 2, идентификатор: 2, имя: "G6PD"} 13

{группа: 2, идентификатор: 3, имя: "ALDH2"} 14

{группа: 2, идентификатор: 4, имя: "CDN2A"} 15

{группа: 2, идентификатор: 5, имя: "ТИТИН"} 16

{группа: 2, идентификатор: 6, имя: "SP1"} 17

{группа: 2, идентификатор: 7, имя: "РАД"} 18

{группа: 2, идентификатор: 8, имя: "SMAD3"} 19

{группа: 2, идентификатор: 9, имя: "APC1"} 20

{группа: 2, идентификатор: 10, имя: "TY3H"}

длина : 21

А вот и мои края

{метка: 0,785, источник: 0, цель: 1} 1

{метка: 0,787, источник: 0, цель: 2} 2

{метка: 0,778, источник: 0, цель: 3} 3

{метка: 0,777, источник: 0, цель: 4} 4

{метка: 0,774, источник: 0, цель: 5} 5

{метка: 0,786, источник: 0, цель: 6} 6

{метка: 0,776, источник: 0, цель: 7} 7

{метка: 0,769, источник: 0, цель: 8} 8

{метка: 0,763, источник: 0, цель: 9} 9

{метка: 0,762, источник: 0, цель: 10} 10

{метка: 0,825, источник: 455, цель: 0} 11

{метка: 0,792, источник: 456, цель: 0} 12

{метка: 0,811, источник: 457, цель: 0} 13

{метка: 0,748, источник: 458, цель: 0} 14

{метка: 0,747, источник: 459, цель: 0} 15

{метка: 0,744, источник: 460, цель: 0} 16

{метка: 0,751, источник: 461, цель: 0} 17

{метка: 0,754, источник: 462, цель: 0} 18

{метка: 0,752, источник: 463, цель: 0} 19

{метка: 0,73, источник: 464, цель: 0} длина

20

Вы можете убедиться, что в ссылках нет недостающих ссылок. Все узлы доступны.

Но когда я отправляю эти узлы и ребра в D3.JS, он присваивает вес: 0 некоторым узлам, что делает некоторые источники ссылок неопределенными и возвращает эту ошибку.

Если я показываю свои узлы и ссылки после отправки их в Force D3.JS, они выглядят так

Узлы:

{группа: 4, идентификатор: 0, имя: "LATS1", индекс: 0, вес: 10} 1

{группа: 1, идентификатор: 455, имя: "ROCK2", индекс: 1, вес: 1} 2

{группа: 1, идентификатор: 456, имя: "MK13", индекс: 2, вес: 1} 3

{группа: 1, идентификатор: 457, имя: "ПДПК1", индекс: 3, вес: 1} 4

{группа: 1, идентификатор: 458, имя: "AAPK1", индекс: 4, вес: 1} 5

{группа: 1, идентификатор: 459, имя: "STK3", индекс: 5, вес: 1} 6

{группа: 1, идентификатор: 460, имя: "NEK11", индекс: 6, вес: 1} 7

{группа: 1, идентификатор: 461, имя: "LATS1", индекс: 7, вес: 1} 8

{группа: 1, идентификатор: 462, имя: "CDK1", индекс: 8, вес: 1} 9

{группа: 1, идентификатор: 463, имя: "DYRK2", индекс: 9, вес: 1} 10

{группа: 1, id: 464, имя: "NUAK1", индекс: 10, вес: 1} 11

{группа: 2, идентификатор: 1, имя: "MSX2", индекс: 11, вес: 0} 12

{группа: 2, идентификатор: 2, имя: "G6PD", индекс: 12, вес: 0} 13

{группа: 2, идентификатор: 3, имя: "ALDH2", индекс: 13, вес: 0} 14

{группа: 2, идентификатор: 4, имя: "CDN2A", индекс: 14, вес: 0} 15

{группа: 2, идентификатор: 5, имя: "ТИТИН", индекс: 15, вес: 0} 16

{группа: 2, идентификатор: 6, имя: "SP1", индекс: 16, вес: 0} 17

{группа: 2, идентификатор: 7, имя: "RAD", индекс: 17, вес: 0} 18

{группа: 2, идентификатор: 8, имя: "SMAD3", индекс: 18, вес: 0} 19

{группа: 2, идентификатор: 9, имя: "APC1", индекс: 19, вес: 0} 20

{группа: 2, идентификатор: 10, имя: "TY3H", индекс: 20, вес: 0}

Края

{метка: 0,785, источник: {…}, цель: {…}} 1

{метка: 0,787, источник: {…}, цель: {…}} 2

{метка: 0,778, источник: {…}, цель: {…}} 3

{метка: 0,777, источник: {…}, цель: {…}} 4

{метка: 0,774, источник: {…}, цель: {…}} 5

{метка: 0,786, источник: {…}, цель: {…}} 6

{метка: 0,776, источник: {…}, цель: {…}} 7

{метка: 0,769, источник: {…}, цель: {…}} 8

{метка: 0,763, источник: {…}, цель: {…}} 9

{метка: 0,762, источник: {…}, цель: {…}} 10

{метка: 0,825, источник: не определен, цель: {…}} 11

{метка: 0,792, источник: 456, цель: 0} 12

{метка: 0,811, источник: 457, цель: 0} 13

{метка: 0,748, источник: 458, цель: 0} 14

{метка: 0,747, источник: 459, цель: 0} 15

{метка: 0,744, источник: 460, цель: 0} 16

{метка: 0,751, источник: 461, цель: 0} 17

{метка: 0,754, источник: 462, цель: 0} 18

{метка: 0,752, источник: 463, цель: 0} 19

{метка: 0,73, источник: 464, цель: 0}

Эта жирная линия вызывает эту проблему

Вот мой код для силы

var force = d3.layout.force()
        .nodes(nodes_, function(d) {
            if(d.weight == 0) {d.weight=1;}
            }
        )
        .links(edges_)
        .size([w, h])
        .linkDistance(function (d, i) {
            if (d['target']['group']==1){

            return linkDistance1;
            }
            if (d['target']['group']==2){

                return linkDistance2;
            }
        })
        .charge([-500])
        .theta(0.8)
        .gravity(0.05)
        .start();

person Muhammad Zeeshan    schedule 04.10.2018    source источник
comment
Вы используете v3, в v3 целевые и исходные номера ссылки ссылаются на узлы по их индексу/порядку в массиве узлов (в v4/5 вы можете указать свойство индекса, такое как id). Как только вы доберетесь до ссылки с источником 455, инициализация вашего узла/ссылки вызовет ошибку, потому что в вашем массиве узлов нет 456 элементов.   -  person Andrew Reid    schedule 04.10.2018
comment
Спасибо. Но узел 456 доступен в списке узлов. Это здесь   -  person Muhammad Zeeshan    schedule 04.10.2018
comment
Если вы делитесь своим полным набором данных, у вас нет 456 узлов в вашем наборе данных, ссылка не ищет идентификатор, она ищет узел с индексом 455 в массиве узлов.   -  person Andrew Reid    schedule 04.10.2018
comment
Если вы хотите использовать v3, вы можете использовать именованный узел (как указано, например, id), заменив идентификационный номер/строку на узел напрямую: stackoverflow.com/a/51390262/7106086   -  person Andrew Reid    schedule 05.10.2018