js,我试图弄清楚如何在 SVG 元素中绘制离散数量的矩形。它可能是 5 个矩形到 100 万个。解决此问题的最佳方法是什么?由于我有离散数量的矩形,我应该使用序数比例还是应该使用线性比例?所以我认为矩形的宽度应该随着矩形数量的增加而缩小。
问问题
797 次
1 回答
1
您必须计算布局并创建适当的比例。例如:
var width = 300,
height = 20,
margin = 2,
nRect = 20,
rectWidth = (width - (nRect - 1) * margin) / nRect,
svg = d3.select('#chart').append('svg')
.attr('width', width)
.attr('height', height);
var data = d3.range(nRect),
posScale = d3.scale.linear()
.domain(d3.extent(data))
.range([0, width - rectWidth]);
svg.selectAll('rect')
.data(data)
.enter()
.append('rect')
.attr('x', posScale)
.attr('width', rectWidth)
.attr('height', height);
我用这段代码写了一个小jsfiddle:http: //jsfiddle.net/pnavarrc/CA7rY/
于 2013-05-23T18:24:54.380 回答