【问题标题】:add Text inside the Boxgroup in heat map dc.js在热图 dc.js 中的 Boxgroup 内添加文本
【发布时间】:2016-04-11 15:48:49
【问题描述】:

有没有办法将文本放在 dc.js 中热图的框组内? 以便无需将鼠标悬停在框上即可读取信息?

var ndx2 = crossfilter(budgetsArr);

 var budgetDimension = ndx2.dimension(function(d) {return [+d.account, +d.year]; });
 var  budgetGroup = budgetDimension.group().reduceSum(function(d) { return +d.budget; });



  chart
    .width(45 * 20 + 80)
    .height(45 * 5 + 40)
    .dimension(budgetDimension)
    .group(budgetGroup)

    .keyAccessor(function(d) { return +d.key[0]; })
    .valueAccessor(function(d) { return +d.key[1]; })
    .colorAccessor(function(d) { return +d.value; })
    .title(function(d) {
        return "Account:   " + d.key[0] + "\n" +
               "Year :  " + d.key[1] + "\n" +
               "Budget: " + (d.value) + " $";})
    .colors(["#ffffd9","#edf8b1","#c7e9b4","#7fcdbb","#41b6c4","#1d91c0","#225ea8","#253494","#081d58"])

    .calculateColorDomain(); 

结果:

我需要可以从框中读取预算,而不是在 title 属性中。

谢谢!

【问题讨论】:

    标签: javascript d3.js heatmap dc.js


    【解决方案1】:

    尝试以下代码,而不是附加标题添加文本元素。如果它不起作用,请放置一个 plnkr 链接。我可能可以帮助您找出问题所在。查看this link 以了解有关添加文本元素的更多信息。

     chart
    .width(45 * 20 + 80)
    .height(45 * 5 + 40)
    .dimension(budgetDimension)
    .group(budgetGroup)
    
    .keyAccessor(function(d) { return +d.key[0]; })
    .valueAccessor(function(d) { return +d.key[1]; })
    .colorAccessor(function(d) { return +d.value; })
    .append("text")
    .attr("x", function(d) { return x(d.value) - 3; })
    .attr("y", d.value/ 2)
    .attr("dy", ".35em")
    .text(function(d) { return "Account:   " + d.key[0] + "\n" +
           "Year :  " + d.key[1] + "\n" +
           "Budget: " + (d.value) + " $";}); });
    

    【讨论】:

    • 因为这是 dc.js 而不是直接的 d3.js,你需要做更多的事情,但这基本上是正确的想法。如果您只是将所有内容从.append 包装到最后,在.on('pretransition', function(chart) { chart.selectAll('rect.heat-box') ... }) 内,那是正确的。 (我认为您也可以简化坐标,因为矩形已经在正确的位置。)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-10
    • 1970-01-01
    • 1970-01-01
    • 2020-12-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多