Ich habe similar questions in Stack Overflow gefunden, aber alle von ihnen wurden vor ein oder zwei Jahren angesprochen. Jetzt ist Chart.js in Version 2 erschienen, und viele der Dokumentationen ändern sich. Kann mir bitte jemand helfen, ein Beispiel für ein Tortendiagramm mit Beschriftungen zu zeigen - oder ein Tortendiagramm mit allen Tooltips seines Segments ist sichtbar?Chart.js v2: Wie werden Tooltips immer im Kreisdiagramm angezeigt?
UPDATE
Dank @potatopeelings arbeitet seine Antwort perfekt für Chart.js v2.1.
Obwohl ich anfänglich gefragt habe, wie man hier Tooltips dauerhaft im Tortendiagramm anzeigt, habe ich eine bessere Lösung gefunden: Werte als Label in Prozent! Es ist jetzt für Kreisdiagramm in Chart.js v2.1 aktiviert. In den Diagrammoptionen:
animation: {
duration: 0,
onComplete: function() {
var self = this,
chartInstance = this.chart,
ctx = chartInstance.ctx;
ctx.font = '18px Arial';
ctx.textAlign = "center";
ctx.fillStyle = "#ffffff";
Chart.helpers.each(self.data.datasets.forEach(function (dataset, datasetIndex) {
var meta = self.getDatasetMeta(datasetIndex),
total = 0, //total values to compute fraction
labelxy = [],
offset = Math.PI/2, //start sector from top
radius,
centerx,
centery,
lastend = 0; //prev arc's end line: starting with 0
for (var val of dataset.data) { total += val; }
Chart.helpers.each(meta.data.forEach(function (element, index) {
radius = 0.9 * element._model.outerRadius - element._model.innerRadius;
centerx = element._model.x;
centery = element._model.y;
var thispart = dataset.data[index],
arcsector = Math.PI * (2 * thispart/total);
if (element.hasValue() && dataset.data[index] > 0) {
labelxy.push(lastend + arcsector/2 + Math.PI + offset);
}
else {
labelxy.push(-1);
}
lastend += arcsector;
}), self)
var lradius = radius * 3/4;
for (var idx in labelxy) {
if (labelxy[idx] === -1) continue;
var langle = labelxy[idx],
dx = centerx + lradius * Math.cos(langle),
dy = centery + lradius * Math.sin(langle),
val = Math.round(dataset.data[idx]/total * 100);
ctx.fillText(val + '%', dx, dy);
}
}), self);
}
},
Ich denke, das ist was du suchst. http://stackoverflow.com/questions/25661197/chart-js-doughnut-show-tooltips-always/25913101#25913101 – Luke
@Luke Hallo, vielen Dank für Ihre Zeit. Leider verwendete dieses Beispiel chart.js v1.0.2. Die Datenstrukturen und Konfigurationen auf v2 unterscheiden sich von v1. – Danny