dc.js:将总计添加到条形图
dc.js: Adding Totals to Bar Chart
我正在尝试在 dc.js 中创建一个条形图,并在图表末尾添加总计标签。现在,我找不到任何关于允许它发生的参数或函数的文档。
如有任何帮助,我们将不胜感激!
戈登,你是对的,这是你在评论中提到的 problem 的副本!
但是,我发现答案无效,因为 .renderlet
链接被删除了。这是对我有用的重制版本(有点,如果条太小,它仍然不会显示)。
谢谢你所做的一切!
testChart
.width(400)
.height(200)
.dimension(testDim)
.group(testGroup)
.x(d3.scale.ordinal())
.xUnits(dc.units.ordinal)
testChart.on('renderlet', function (chart) {
var barsData = [];
var bars = chart.selectAll('.bar').each(function (d) {
barsData.push(d);
});
//Remove old values (if found)
d3.select(bars[0][0].parentNode).select('#inline-labels').remove();
//Create group for labels
var gLabels = d3.select(bars[0][0].parentNode).append('g').attr('id', 'inline-labels');
for (var i = bars[0].length - 1; i >= 0; i--) {
var b = bars[0][i];
//Only create label if bar height is tall enough
if (+b.getAttribute('height') < 10) continue;
gLabels.append("text")
.text(barsData[i].data.value)
.attr('x', +b.getAttribute('x') + (b.getAttribute('width') / 2))
.attr('y', +b.getAttribute('y') + 25)
.attr('text-anchor', 'middle')
.attr('fill', 'black');
}
});
我正在尝试在 dc.js 中创建一个条形图,并在图表末尾添加总计标签。现在,我找不到任何关于允许它发生的参数或函数的文档。
如有任何帮助,我们将不胜感激!
戈登,你是对的,这是你在评论中提到的 problem 的副本!
但是,我发现答案无效,因为 .renderlet
链接被删除了。这是对我有用的重制版本(有点,如果条太小,它仍然不会显示)。
谢谢你所做的一切!
testChart
.width(400)
.height(200)
.dimension(testDim)
.group(testGroup)
.x(d3.scale.ordinal())
.xUnits(dc.units.ordinal)
testChart.on('renderlet', function (chart) {
var barsData = [];
var bars = chart.selectAll('.bar').each(function (d) {
barsData.push(d);
});
//Remove old values (if found)
d3.select(bars[0][0].parentNode).select('#inline-labels').remove();
//Create group for labels
var gLabels = d3.select(bars[0][0].parentNode).append('g').attr('id', 'inline-labels');
for (var i = bars[0].length - 1; i >= 0; i--) {
var b = bars[0][i];
//Only create label if bar height is tall enough
if (+b.getAttribute('height') < 10) continue;
gLabels.append("text")
.text(barsData[i].data.value)
.attr('x', +b.getAttribute('x') + (b.getAttribute('width') / 2))
.attr('y', +b.getAttribute('y') + 25)
.attr('text-anchor', 'middle')
.attr('fill', 'black');
}
});