gpt4 book ai didi

javascript - 如何向 Zoomable Icicle d3 图表添加文本?

转载 作者:行者123 更新时间:2023-12-02 18:41:25 26 4
gpt4 key购买 nike

如何向该图中的矩形添加文本?​​

http://bl.ocks.org/mbostock/1005873

最佳答案

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); });
}
});

关于javascript - 如何向 Zoomable Icicle d3 图表添加文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16798487/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com