RAP 컨텍스트에서 d3 트리 맵 레이아웃을 사용하고 있습니다. 따라서 내 트리 맵은 뷰에 포함되어 있으며 처음부터 크기를 조정 한 후에이 뷰를 채워야합니다.D3 Treemap 레이아웃 크기 조정
동적으로 트리 맵을 업데이트하는 것에 대한 몇 가지 주제를 읽었지만 그 중 어느 것도 내 문제를 정확하게 해결하지 못한다고 느꼈습니다.
this._treemap = d3.layout.treemap()
.value(function(d){return d._value})
.children(function(d) { return d._items })
.size([800,300])
.padding(4)
.nodes(this);
var cells = selection
.data(this._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 d.children ? color(d._text) : color(d.parent._text)})
.attr("stroke", "black")
.attr("stroke-width",1);
고정 크기는 트리 맵의 초기화시 설정됩니다. 모든 계산 된 값 (값, x, y, dx, dy)은 설정된 크기에 따라 다릅니다. 이 트리 맵을 사용하여 svg에서 일부 직사각형을 페인트합니다.
이미 뷰의 크기 조정을 인식하는 업데이트 기능이 있으며 treemap 레이아웃 업데이트를 어떻게 든 처리하지만 많은 것을 조합 할 수는 없습니다.
_updateLayout: function() {
this._width = this._chart._width;
this._height = this._chart._height;
console.log(this._height);
console.log(this._width);
this._layer = this._chart.getLayer("layer");
크기 및 위치에 대한 새로운 값으로 사각형을 업데이트하고 싶지만 레이아웃에이 값을 어떻게 가져 옵니까? 새 레이아웃을 만드는 것보다 다른 옵션이 있어야합니까?
내가 올바르게 이해하고 있는지 확실하지 않습니다. 업데이트시, 트리 맵의 새 크기를 설정합니까? –