我想顯示小切片(chart.minAngleForLabel(0.05)
)的標籤以避免文本重疊。如何在dc.js餅圖上定位標籤?
我添加了朝向外邊緣移動一個標籤renderlet:
.on('renderlet', function(chart) {
chart.selectAll('text').attr('transform', function(d, i) {
var old = this.getAttribute('transform');
if (d.endAngle-d.startAngle > 0.3) { return old; }
var xy = old.slice(10,-1).split(',');
var m = 1.25 + (i%3) * 0.25;
return 'translate(' + (+xy[0]*m) + ',' + (+xy[1]*m) + ')';
})
})
,我很高興而與它(第二圖像是renderlet後):
但它會引起惱人的過渡 - 標籤向質心移動,然後跳回。有沒有解決方法?
感謝您添加新活動! 使標籤佈局更加靈活的方法之一是允許'_externalLabelRadius'成爲一個函數(在'labelPosition()')中。我認爲負面的'_externalLabelRadius'可能會被濫用來設置內部半徑。只是一個想法。 – marcin
啊,這是一個好主意。我也在考慮一個標籤位置調整器,以幫助您改變原來的計算位置,但是您所建議的可能會更有幫助。 – Gordon
討論/解決方案的新增問題:https://github.com/dc-js/dc.js/issues/945 – Gordon