使用d3.js为条形图中嵌入的折线图设置不同的范围,可以通过以下步骤实现:
下面是一个示例代码:
// 创建容器元素
var svg = d3.select("body")
.append("svg")
.attr("width", 500)
.attr("height", 300);
// 创建比例尺
var xScale = d3.scaleBand()
.domain(data.map(function(d) { return d.label; }))
.range([0, 400])
.padding(0.1);
var yScale = d3.scaleLinear()
.domain([0, d3.max(data, function(d) { return d.value; })])
.range([200, 0]);
// 创建条形图
svg.selectAll(".bar")
.data(data)
.enter()
.append("rect")
.attr("class", "bar")
.attr("x", function(d) { return xScale(d.label); })
.attr("y", function(d) { return yScale(d.value); })
.attr("width", xScale.bandwidth())
.attr("height", function(d) { return 200 - yScale(d.value); });
// 创建折线图
var line = d3.line()
.x(function(d) { return xScale(d.label) + xScale.bandwidth() / 2; })
.y(function(d) { return yScale(d.value); });
svg.append("path")
.datum(data)
.attr("class", "line")
.attr("d", line);
// 设置不同的范围
xScale.range([0, 300]);
yScale.range([150, 0]);
这样,就可以使用d3.js为条形图中嵌入的折线图设置不同的范围。根据具体需求,可以调整比例尺的域范围和range范围来实现不同的效果。
领取专属 10元无门槛券
手把手带您无忧上云