Я изучаю D3 и пытаюсь воссоздать код упаковки круга по следующей ссылке: https://bl.ocks.org/mbostock/7607535
Разница в том, что я импортирую данные из CSV (образец ниже):
Name, Rating, Boss, Bossboss
Name1, 1, BossName, Bossbossname
Name2, 3, BossName, Bossbossname
Код выглядит следующим образом:
var rowConverter = function(d) {
return {
name: d.Name,
value: parseInt(d['Rating']),
Boss: d['Boss'],
Bossboss: d['Bossboss']
};
}
var pack = d3.pack()
.size([diameter - margin, diameter - margin])
.padding(2);
d3.csv("data.csv", rowConverter, function(data) {
entries = d3.nest()
.key(function(d) {
return d.Bossboss;
})
.key(function(d) {
return d.Boss;
})
.entries(data);
var root = {
name: "root",
children: entries
};
root = d3.hierarchy(root)
.sum(function(d) {
return d.size;
})
.sort(function(a, b) {
return b.value - a.value;
});
}
Это создает узлы, в которых данные идеально заполнены иерархически.Однако радиус каждого узла равен Nan.Может кто-нибудь объяснить, пожалуйста, что здесь не так?
Редактировать: Кажется, это хуже, чем просто атрибут 'r', являющийся NaN.Только корневой узел имеет заполненные атрибуты x и y.Внутренние узлы имеют NaN для всех атрибутов x, y и r.
Спасибо.