2013-03-27 49 views
0

根据酒吧的长度,我在缩放我的图时遇到了一些麻烦。例如,在jsfiddle中,我无法在大小为25的数据点之外绘制一个条。我知道解决这个问题的一种方法是使身体的宽度和高度更大。但我认为缩放整个图会更有效率,所以一个酒吧不会看起来异常大。D3:根据数据点的比例图

http://jsfiddle.net/NkkDC/

我在想,我会在这里缩放“Y”的功能,但我不知道怎么样。提前:)

bars.on("click", clickEvent) 
    .transition().duration(2000).delay(200) 
    .attr("y", function(d, i) { return i * 20; }) 
    .attr("width", x) 
    .attr("height", 20); 

感谢

回答

1

您的xScale等可以改变每次添加一个新的值(因为你可以添加一个新的最大)时间的输入域,因此我们需要我们的时候重新计算使用XScale重新渲染图表。移动X规模的声明渲染函数中应该做的伎俩:

var xScale = d3.scale.linear() 
.domain([0, d3.max(data)]) 
.range([0, 420]); 

http://jsfiddle.net/NkkDC/1/

+0

谢谢! :)正是我需要的! – user2159121 2013-03-27 21:13:05