在d3中绘制矩形标签

时间:2015-06-17 16:06:24

标签: javascript html svg d3.js label

我想为d3条形图制作标签,如下所示:

Labels

但是我很难在d3中编写代码来生成这些代码。任何人都可以帮助我吗?

下面是我用来生成条形图的片段 - 但不知道这有多大帮助。我可以编写html来制作图片中描绘的标签,但据我所知,这使得无法将条形对齐标签。

canvas.selectAll('rect-total')
  .data(projectData)
  .enter()
  .append('rect')
  .attr('width', w-50)
  .attr('height', yScale.rangeBand())
  .attr('x', 20)
  .attr('y', function(d) {return yScale(d.category);})
  .attr('fill', 'none')
  .attr('stroke', function(d) {return categoryColorsDict[d.category];});


canvas.selectAll('rect-success')
  .data(projectData)
  .enter()
  .append('rect')
  .attr('width', function(d) {return xScale(d.successful_projects);})
  .attr('height', yScale.rangeBand())
  .attr('y', function(d) {return yScale(d.category);})
  .attr('x', function(d) {return 20;})
  .attr('fill', function(d) {return categoryColorsDict[d.category];});

1 个答案:

答案 0 :(得分:0)

与Lars提到的相似,我认为它应该类似于下面的内容:

canvas.selectAll('text')
.data([ArrayOfData])
.enter()
.append('text')
.attr('y', function(d) {return yScale(d.category);})
.attr('x', function(d) {return 20;})
.text(function(d) {return d;})
.attr('text-anchor','middle').
.style({What ever styles you want to apply});

希望这有帮助!