在d3js的热图网格中附加文本或圆圈

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在d3js的热图网格中附加文本或圆圈相关的知识,希望对你有一定的参考价值。

需要在d3js的热图中的“rect”中附加文本或圆圈

Fiddle example: https://jsfiddle.net/ejg2amhj/7/

用这段代码试了很多:

.append("text")
    .text(function() {
    return "1";
});

并试过这个:

  .append("svg")          
  .attr("width", 10)      
  .attr("height", 10)    
  .append("rect")
  .attr("x", 0)
  .attr("y", 0)
  .attr("width", 20)
  .attr("height", 20);

在代码中,我可以看到文本和圆圈,但在屏幕上看不到,无法找到确切的解决方案或任何其他替代在rect中附加文本。

答案

不幸的是,<rect>'s没有像这样的儿童元素。

这是一个快速的解决方案,您可以根据您的设计需求进行调整:

var heatMap = svg.selectAll(".hour")
    .data(accidents)
    .enter().append("rect")
    .attr("x", function(d) { return (d.hour - 1) * gridSize; })
    .attr("y", function(d) { return (d.app - 1) * gridSize; })
    .attr("class", "hour bordered")
    .attr("width", gridSize)
    .attr("height", gridSize)
    .style("stroke", "white")
    .style("stroke-opacity", 0.6)
    .style("fill", function(d) { return colorScale(d.count); });

svg.selectAll(".hourlabel")
    .data(accidents)
    .enter().append("text")
    .attr("class", "hourlabel")
    .attr("x", function(d) { return (d.hour - 1) * gridSize + 12; })
    .attr("y", function(d) { return (d.app - 1) * gridSize + 18; })
    .text(function() {
        return "1";
    });

JSFiddle

以上是关于在d3js的热图网格中附加文本或圆圈的主要内容,如果未能解决你的问题,请参考以下文章

使用 Matplotlib 在带有图例的热图中显示不同大小的圆圈

markdown amCharts V4:热图圆圈

网格搜索后如何在 pivot_table 上绘制热图

Forge Viewer - 如何在场景中访问(或获取渲染/片段代理)克隆的网格?

ProgressBar.js 中圆圈内的文本不会在我的 CSS Grid 单元格内正确居中

如何在屏幕方向更改时附加片段?