В настоящее время я работаю над расширением примера d3 для рэпа, представленного здесь:
https://github.com/ralfstx/rap-d3charts
по диаграмме древовидной карты. Я не хочу вдаваться в подробности, если это не необходимо. Конкретная проблема возникает, когда я пытаюсь запустить макет древовидной карты в своей структуре. Эта структура состоит из «древовидной карты» в качестве корня с массивом «дочерние элементы», содержащим все прямые дочерние элементы корня с типом «ChartItem». В них есть и детские. Каждый элемент диаграммы содержит числовое значение «значение».
Я надеюсь, что это не слишком запутывает. Дело в том, что я понятия не имею, для чего нужны различные атрибуты карты дерева. Приведенная ниже конфигурация является единственной, которая «работает», показывая мне только дочерние элементы, прикрепленные к корню (древовидная карта -> это)
Я бы предположил, что мне не нужен атрибут .value, поскольку мои узлы уже содержат «значение». Это неправильно?
То же самое с атрибутами «дети» и «узлы».
Я понятия не имею, как установить эти атрибуты. Я знаю примеры древовидной карты d3 и справочник по API, но они мне не помогают.
var treemap = d3.layout.treemap() .size([500,300]) .padding(4) .children(function(d) { return d }) .value(function(d){return d.value}) .nodes(this.children); var selection = this._layer.selectAll( "g.item" ) var color = d3.scale.category20c(); console.log(this); console.log(treemap); var cells = selection .data(treemap) .enter() .append("svg:g") .attr("class", "item") .append("rect") .attr("x", function(d){return d.x;}) .attr("y", function(d){return d.y;}) .attr("width", function(d){return d.dx;}) .attr("height", function(d){return d.dy;}) .attr("fill", function(d){return color(d.parent) }) .attr("stroke", "black") .attr("stroke-width",1); var textfields = selection .append("svg:text") .attr("opacity", 1.0) .attr("x", function(d){return d.x;}) .attr("y", function(d){return d.y+20;}) //.text(function(d){return d.children ? null : d._text;}); .text(function(d){return d._text;});
Я был бы признателен за любую помощь, особенно за объяснение того, как следует использовать макет древовидной карты.
Заранее спасибо.