我在时间轴上有许多箱图。我已经关闭了刷牙,因为我希望工具提示(.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);
答案 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/
这会将标题添加到每个盒子和胡须的主矩形('rect.box'
);检查DOM以查看要自定义的其他部分,或使用'g.box'
将标题添加到整个事物中。
请注意,数据将包含d.value
中框的所有单个值的数组;我在这里展示他的意思。