Я построил диаграмму d3 sankey, адаптированную из this example, чтобы показать поток предпосылок для курсов в моей программе. Однако, вместо того, чтобы позволить библиотеке Auto-позиционные узлы, я вручную установить их x
и y
координаты минимизируют крестов с этой короткой кусочке кода перед вызовом update();
Почему эта диаграмма d3 визуализируется с помощью крестов, а затем избавляется от них при перемещении узла?
if (!AUTO_POSITION) {
exampleNodes.forEach((r, i) => {
r.x = r.xPos;
r.y = r.yPos;
});
}
Диаграмма первоначально визуализирует как это (примечание линия пересекает около МАТЕМАТИКА 100, МАТЕМАТИКА 101, 101, PHYS PHYS 102, ELEC 211, ELEC 311 и т.д.):
Однако при нажатии и перетащить любой один узел, схема подстраивается это (обратите внимание, что большинство крестов исчезает):
Почему программа это сделать? И как я могу получить диаграмму для рендеринга без крестов при загрузке?
Я попытался взломать события щелчка узла и перетащить его при загрузке, но есть немного задержки и требуется, чтобы мышь была переведена на работу. Кроме того, я использовал бы это только как временное решение последней меры.
var evt = document.createEvent("MouseEvents");
evt.initEvent("mouseup", true, true);
evt.initEvent("mousedown", true, true);
document.querySelector("g.node").dispatchEvent(evt);
Полный код для моего примера в этом JSFiddle. Благодарю.
Код около 1500 строк! Не могли бы вы создать минимальный код, представляющий вашу проблему, без лишних деталей? – Mehraban