我需要实现D3气泡图,但是由于气泡分散在除法中(在特定坐标处散布在除法中),而不是用圆圈包装layout.Is,那么可以用D3.js这样的方式设置气泡的位置吗?
发布于 2015-06-14 15:35:10
当然,不要使用布局,自己设置每个圆圈cx和cy:
svg.selectAll('circle')
.data(data)
.enter()
.append('circle')
.attr('r', function(d){
return d.r;
})
.attr('cx', function(d){
return d.x;
})
.attr('cy', function(d){
return d.y;
});例如这里。
编辑
你可以任意排列气泡,你只是在x/y 2d空间中定位它们。如果您想要进入复杂的事物,请考虑使用d3的鳞片来帮助将用户空间映射到像素空间。
这里是你的正弦波例子:
var svg = d3.select('body')
.append('svg')
.attr('width', 500)
.attr('height', 500);
var xscale = d3.scale.linear()
.domain([0, 10])
.range([0, 500]);
var yscale = d3.scale.linear()
.domain([-1, 1])
.range([0, 500]);
var data = [];
for (var i = 0; i < 10; i+=0.1){
data.push({
x: i,
y: Math.sin(i),
r: Math.random() * 10
});
}
svg.selectAll('circle')
.data(data)
.enter()
.append('circle')
.attr('r', function(d){
return d.r;
})
.attr('cx', function(d){
return xscale(d.x);
})
.attr('cy', function(d){
return yscale(d.y);
});另一个例子是这里。
https://stackoverflow.com/questions/30828496
复制相似问题