我通过设置固定的 x 位置但改变 y 位置来绘制圆圈。问题是圆圈重叠,因为每个圆圈的半径不同。
理论上,为了解决这个问题,我可能希望获得前一个圆的 y 位置并将当前圆的半径添加到它以获得当前圆的 y 位置。如果我想错了,请纠正我。
现在我正在做这样的事情
var k = 10;
var circleAttributes = circles.attr("cx", '150')
.attr("cy", function (d) {
return (k++) * 10; //this is a very gray area
})
我得到了重叠。理想情况下,我想将圆圈彼此隔开。即使外边缘相互接触,我也可以忍受。我应该如何处理它?
我正在写一个我用来获取半径的范围
var rScale = d3.scale.linear()
.domain([min, max])
.range([10, 150]);
并简单地将它作为这样的半径传递
.attr("r", function(d) { return rScale(d.consumption_gj_);})
这是我的小提琴
http://jsfiddle.net/sghoush1/Vn7mf/27/