2016-04-30 4 views
0

здесь http://bl.ocks.org/mbostock/4063269 диаметр = 960.Например, динамический диаметр в соответствии с моими размерами узлов. Необходимо изменить размер увеличения и уменьшения по мере увеличения и уменьшения количества узлов. Я пробовал разные подходы, но не могу.Динамический диаметр в диаграмме пузырьков в d3.js

+1

Непонятно, что вы просите –

+0

Я хочу изменить размер моего диаметра в соответствии с количеством узлов. То, что я делаю сейчас, я вычисляю узел из моего json, предположим, что у меня есть 20 узлов. Я умножаю этот 20 на 10 (хочу равный размер узла), поэтому мой размер = 200 для 20 узлов правильный !, теперь, если у моего json есть 30 узлов, тогда мой размер будет 30 * 10 = 300, что 300 правильно. Но радиус-узел для 20 отличается от 30 узлов. здесь я не могу понять, почему мой радиус увеличивается по мере увеличения числа узлов. Радиус должен быть исправлен для всех узлов, если он имеет 20 или 30 или что-то еще (я хочу, чтобы исправить радиус одного узла) – user1872177

+0

@ user1872177 показать пример того, как изменяется размер узлов в зависимости от вашего количества узлов? как хост его на jsfiddle или codepen. – paradite

ответ

0

Если я правильно понял ваш вопрос, вы хотите, чтобы ширина и высота всей визуализации были динамически изменены в зависимости от количества/размера узлов.

Это невозможно с d3.layout.pack(). Тем не менее, вы можете знать, что радиус каждого узла фактически динамически вычисляется на основе size макета:

pack.radius ([радиус])

Если указан радиус, устанавливает радиус для вычисления радиуса каждого узла. Если радиус равен нулю, по умолчанию он определяется автоматически из значения узла, масштабированного в соответствии с размером макета. Если радиус не указан, возвращается текущая функция радиуса, которая по умолчанию равна нулю. Радиус также может быть задан как постоянное число для равномерного размера круга.

https://github.com/mbostock/d3/wiki/Pack-Layout#radius

Таким образом, по умолчанию без указания # pack.radius([radius]), данный макет фиксированного размера, узлы будут всегда соответствовать макет.

+0

Большое вам спасибо, вы понимаете мою точку. У меня есть фиксированный размер для каждого узла. Но проблема в том, что я увеличиваю количество узлов, радиус которых увеличивается. Я подсчитываю свои узлы, а затем умножаю их на постоянное число, подобное 10. Например, для 20 узлов размер моего диаметра равен 200, а для 30 узлов размер моего диаметра - 300. Но радиус одного узла в 20 узлах меньше, чем радиус одного узла в 30 узлах. Как я увеличиваю количество узлов, радиус каждого узла увеличивается, что является моей проблемой. Мне нужен одинаковый размер радиуса – user1872177

Смежные вопросы