0
A
回答
2
var margin = {top: 40, right: 40, bottom: 40, left: 40},
w = 0.5 * D3_WIDTH - margin.left - margin.right,
h = 0.25 * D3_HEIGHT - margin.top - margin.bottom,
x_range = d3.scale.linear().range([0, w]),
y_range = d3.scale.linear().range([0, h]),
color = d3.scale.category20c();
var vis = d3.select('#divName').append("svg:svg")
.attr("width", w)
.attr("height", h)
.style("left", margin.left + "px")
.style("top", margin.top + "px");
var partition = d3.layout.partition()
.value(function(d) { return d.size; });
d3.json(jsonRequestUrl, function(json) {
var data = partition(json);
var rect = vis.selectAll("rect").data(data).enter()
.append("svg:rect")
.attr("x", function(d) { return x_range(d.x); })
.attr("y", function(d) { return y_range(d.y); })
.attr("width", function(d) { return x_range(d.dx); })
.attr("height", function(d) { return y_range(d.dy); })
.attr("fill", function(d) {return color(d.name);})
.style("cursor", "pointer")
.on("click", click);
var fo = vis.selectAll("foreignObject").data(data).enter()
.append("svg:foreignObject")
.attr("x", function(d) { return x_range(d.x); })
.attr("y", function(d) { return y_range(d.y); })
.attr("width", function(d) { return x_range(d.dx); })
.attr("height", function(d) { return y_range(d.dy); })
.style("cursor", "pointer")
.text(function(d) { return d.name })
.on("click", click);
function click(d) {
x_range.domain([d.x, d.x + d.dx]);
y_range.domain([d.y, 1]).range([d.y ? 20 : 0, h]);
rect.transition()
.duration(750)
.attr("x", function(d) { return x_range(d.x); })
.attr("y", function(d) { return y_range(d.y); })
.attr("width", function(d) { return x_range(d.x + d.dx) - x_range(d.x); })
.attr("height", function(d) { return y_range(d.y + d.dy) - y_range(d.y); });
fo.transition()
.duration(750)
.attr("x", function(d) { return x_range(d.x); })
.attr("y", function(d) { return y_range(d.y); })
.attr("width", function(d) { return x_range(d.x + d.dx) - x_range(d.x); })
.attr("height", function(d) { return y_range(d.y + d.dy) - y_range(d.y); });
}
});
相关问题
- 1. d3js Zoomable冰柱数据
- 2. 如何在D3中的Zoomable冰柱布局中获取文本标签的旋转?
- 3. 将hyeperlinks添加到zoomable d3圆形包中
- 4. 如何将文字添加到谷歌图表柱形图轴?
- 5. 如何将文本添加到D3阳光图的中心
- 6. D3:无法将文本元素添加到图表
- 7. 如何隐藏D3 Zoomable Pack Layout中标签的重叠文本?
- 8. 如何添加文本到力向图中D3.js
- 9. 如何将文本添加到表格
- 10. 如何文本添加到D3 JS圆环图
- 11. 如何将注记文本添加到Highcharts图表中?
- 12. D3 zoomable yAxis in hours
- 13. D3.JS添加新数据时的柱形图柱偏移量
- 14. D3.js Zoomable Treemap库与其他图表版本不兼容
- 15. 什么是冰冻冰柱?
- 16. d3.partition的层级级别标签冰柱图
- 17. D3 - 将文本标签添加到更新力布局图
- 18. 如何将文本从文本框添加到列表中
- 19. D3图:如何将文本追加到只给定链路
- 20. D3.js添加文字时的柱状图反演
- 21. 如何使d3 zoomable treemap响应?
- 22. 如何使用d3.js将标签添加到我的图中?
- 23. 如何将数据标签添加到柱状图?
- 24. 如何将图例添加到图表?
- 25. 在D3中添加图表图例
- 26. D3添加/定位文本
- 27. 如何将文本添加到R中的网络图中?
- 28. d3.js将图例添加到多行系列图表
- 29. d3将img添加到li
- 30. 如何将文本追加到d3.js中的一行
为你做这项工作? –
是的,它确实 - 文本的过渡也很好。但是您可能想要编辑文本的坐标函数以便将它们居中(例如) - 如果这是您想要执行的操作。 – Isaac
更重要的是,您可能需要更改设置自定义儿童功能以及更新分区对象上的值功能 – Isaac