使用D3.js在svg元素中绘制离散数量的rects

时间:2013-05-21 10:03:52

标签: svg d3.js data-visualization

js和我正在试图弄清楚如何在SVG元素中绘制离散数量的矩形。它可以是5个矩形到一百万个。最好的方法是什么?我应该使用序数量表,因为我有一个离散数量的矩形或者我应该使用线性标度?所以我认为随着矩形数量的增加,矩形的宽度会缩小。

1 个答案:

答案 0 :(得分: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/