私はChart.jsを使用して自分のサイトに一連のチャートを描画しています。Chart.jsのドーナツチャートにラベルを追加すると、各チャートのすべての値が表示されます
drawChart(ctxElement, ctxType, ctxDataLabels, ctxDataSets, midLabel) {
var ctx = ctxElement;
var data = {
labels: ctxDataLabels,
datasets: ctxDataSets
};
Chart.pluginService.register({
beforeDraw: function(chart) {
var width = chart.chart.width,
height = chart.chart.height,
ctx = chart.chart.ctx;
ctx.restore();
var fontSize = (height/114).toFixed(2);
ctx.font = fontSize + "em sans-serif";
ctx.textBaseline = "middle";
var text = midLabel,
textX = Math.round((width - ctx.measureText(text).width)/2),
textY = height/2;
ctx.fillText(text, textX, textY);
ctx.save();
}
});
var chart = new Chart(ctx, {
type: ctxType,
data: data,
options: {
legend: {
display: false
},
responsive: true
}
});
}
drawChart()メソッドの最後のパラメータには、グラフの中央に追加するラベルが含まれています。 Chart.pluginService.register
部分は、ラベルを描画するコードです。問題は、drawChartメソッドを複数回(私の場合は3回)実行し、メソッド実行の各グラフのラベルを指定すると、3つすべてのラベルが各グラフの上に重ねて表示されることです。対応するグラフに各ラベルを表示する必要があります。他のすべてのパラメータは、ラベルを除いて正しく処理されます。
どのように達成できますか?
素晴らしい、ありがとう! –