#javascript #d3.js #circle-pack
#javascript #d3.js #circle-pack
Вопрос:
Я использую макет пакета d3 с функцией radius по умолчанию. Это масштабирует размер кругов так, чтобы все помещалось в контейнер.
Как я могу получить доступ к этому масштабному коэффициенту?
Комментарии:
1. API не предоставляет это, поэтому вам придется изменить исходный код.
2. :-(. Поиграв немного дольше, похоже, что коэффициент даже не является константой, т. Е.
d.value/d.r
Не Является постоянным.3. Ах, потому что он использует Math.sqrt по умолчанию…
Ответ №1:
Этот код отобразит масштабный коэффициент во всплывающей подсказке узла:
titles
.attr("x", function(d) { return d.x; })
.attr("y", function(d) { return d.y; })
.text(function(d) {
return ( "Scale factor : " ( d.value)/(d.r*d.r) "n"
"Value: " d.value "n"
"R: " d.r);
});
как в этом тестовом примере jsfiddle.
Похоже, что коэффициент масштабирования более или менее одинаков для всех конечных узлов в пакете circle, как показано на следующих двух рисунках:
Однако он может отличаться для всех других узлов!