Диаграмма Санки d3.js: где устанавливаются .dy и .dx?

Я занят каннибализацией отличного руководства по диаграммам Санки D3.js по адресу http://www.d3noob.org/2013/02/sankey-diagrams-description-of-d3js-code.html . Я хочу настроить ширину штриха на путях.

В этом URL-адресе есть значительный блок кода для контекста, но я хочу спросить об этом отрывке:

  var link = svg.append("g").selectAll(".link")
      .data(graph.links)
    .enter().append("path")
      .attr("class", "link")
      .attr("d", path)
      .style("stroke-width", function(d) { return Math.max(1, d.dy); })
      .sort(function(a, b) { return b.dy - a.dy; });

Видите там отсылку к "d.dy"? Как/где именно это устанавливается? Я не вижу явной ссылки в его более крупном фрагменте кода или в его источнике данных. Я пойду и продолжу гуглить, но если вы знаете простой ответ или ресурс, я был бы признателен за вашу помощь. На данный момент я думаю, что какая-то часть плагина sankey или класса ссылки устанавливает его на лету, глядя на размер и положение прямоугольников узла.


person ouonomos    schedule 12.08.2015    source источник


Ответы (1)


Это происходит внутри sankey.js в вызове .layout. См. dx здесь и dy здесь.

person Mark    schedule 12.08.2015
comment
В частности, это происходит при вызове sankey .nodes(graph.nodes) .links(graph.links) .layout(32);. - person Lars Kotthoff; 13.08.2015
comment
Благодарю вас! Вы сэкономили мне 2 часа работы с d3 docxn, которые я теперь потрачу на распутывание кода sankey.js :). - person ouonomos; 13.08.2015