DC.js |我怎么能得到.title(工具提示)来处理boxplot?

时间:2017-03-17 13:02:31

标签: javascript dc.js

我在时间轴上有许多箱图。我已经关闭了刷牙,因为我希望工具提示(.title)能够正常工作。然而,它不起作用。感谢任何建议!这是我的代码:

distTime.width(350)
        .height(150)
        .margins({left:50,right:10,top:0,bottom:30})
        .dimension(timeDim)
        .group(premiumGroup)
        .clipPadding(30)
        .brushOn(false)
        .renderTitle(true)
        .title(function(d){ return "emma"; })
        .boxWidth(20)
        .colors("steelblue")
        .renderHorizontalGridLines(true)
        .x(d3.time.scale())
        .round(d3.time.years.round)
        .xUnits(d3.time.years)
        .elasticY(true);

    distTime.yAxis().tickFormat(d3.format('s'));
    distTime.yAxis().ticks(5);

function calc_domain(chart) {
    var min = d3.min(chart.group().all(), function(kv) { return kv.key; }),
        max = d3.max(chart.group().all(), function(kv) { return kv.key; });
    //max = d3.time.year.offset(max, 1);
    chart.x().domain([min, max]);
}
distTime.on('preRender', calc_domain);
distTime.on('preRedraw', calc_domain);

1 个答案:

答案 0 :(得分:1)

您可以使用pretransition事件处理程序添加标题:

  chart.on('pretransition', function(chart) {
    chart.selectAll('rect.box')
      .append('title')
      .text(function(d) {
        return d.key + ' (mean ' + d3.mean(d.value) + ')';
      });
  });

示例小提琴:http://jsfiddle.net/rwbmrzu9/8/

box with tooltip

这会将标题添加到每个盒子和胡须的主矩形('rect.box');检查DOM以查看要自定义的其他部分,或使用'g.box'将标题添加到整个事物中。

请注意,数据将包含d.value中框的所有单个值的数组;我在这里展示他的意思。