我目前正在扩展此处提供的 d3 for rap 示例:
https://github.com/ralfstx/rap-d3charts
通过树状图。如果不是必要的话,我不想详细说明。当我尝试在我的结构上运行树图布局时,会出现特定问题。该结构由一个“Treemap”作为根和一个“children”数组组成,该数组包含根的所有直接子级,类型为“ChartItem”。那些也包含孩子。每个图表项都包含一个数值“值”。
我希望这不会让人感到困惑。关键是,我不知道不同的树图属性是做什么用的。下面的配置是唯一“有效”的配置,只显示了连接到根的孩子(Treemap -> this)
我会假设,我不需要 .value 属性,因为我的节点已经包含一个“值”,这是错误的吗?
与 'children' 和 'nodes' 属性相同
我不知道如何设置这些属性。我知道 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;});
我将不胜感激,尤其是一些解释如何使用树形图布局
先感谢您。