2012-07-22 1 views
2

Я пытаюсь сделать пузырьковую диаграмму, подобную Mike Bostock's:Узел генерация из JSon данных для компоновки силового

enter image description here

Однако, вместо того, генерироваться случайным образом узлов, я хочу, чтобы быть сгенерирована для JSON. Предположим, что у меня есть переменная dataset, которая является допустимым JSON, как я могу сгенерировать переменную nodes из этого, которая может использоваться для компоновки сил.

реализация Майка (для случайно сгенерированных кругов) является:

var nodes = d3.range(n).map(function() { 
    var i = Math.floor(Math.random() * m), 
     v = (i + 1)/m * -Math.log(Math.random()); 
    return { 
    radius: radius(v), 
    color: color(i), 
    cx: x(i), 
    cy: height/2 
    }; 
}); 

Давайте предположим, что мой dataset JSON это что-то вроде:

{"nodes":[{"name": "node_name", "size": 18}, ... ]} 

И я хочу, радиус каждой окружности быть size каждого объекта в массиве JSON.

+0

Можете ли вы привести пример данных JSON, с которых вы начинаете? –

+0

Просто добавил к вопросу. – leonsas

ответ

0

nodes представляет собой массив объектов, каждый из которых имеет radius, color, cx и cy атрибуты. Все, что вам нужно сделать, это создать такой массив из ваших данных. Как именно это будет зависеть от ваших данных. Обратите внимание, что вам не нужно создавать все атрибуты - если все узлы могут иметь один и тот же цвет, например, вам не нужно добавлять соответствующий атрибут (но также необходимо изменить код, который на самом деле устанавливает цвет позже на).