如何在d3中的同一图上绘制多个矩形

时间:2016-04-27 23:37:12

标签: javascript d3.js

我正在尝试使用csv文件中的数据在单个绘图上创建多个矩形。根据我目前的方法,我似乎每行创建多个图表。我怀疑我的问题与我如何选择和附加我的​​svg元素有关我的数据。

<input type="text" />

1 个答案:

答案 0 :(得分:2)

阅读thinking with joins,您正在做的是创建多个svg节点而不是一个具有多个rects的svg

d3.csv('Input/test_single.csv')
  .row(function (d) { return d })
  .get(function (error, rows) {
    var chart = d3.select("#chart-div").append('svg').classed("chart", true).attr("width", width)

    chart.selectAll('rect').data(rows)
      .enter()
      .append("rect")
      .attr("x", function(d){return(parseInt(d.Start) + parseInt(spacer))})
      .attr("y", 75)
      .attr("width", function(d){return(parseInt(d.End) - parseInt(d.Start))}) 
      .attr("height", 50)
      .style("stroke", "rgb(255,0,0)")
      .style("stroke-width", 2)
});