您需要使用标签回调。
对数据值进行四舍五入的常见示例,以下示例将数据四舍五入到小数点后两位。
var chart = new Chart(ctx, {
type: 'line',
data: data,
options: {
tooltips: {
callbacks: {
label: function(tooltipItem, data) {
var label = data.datasets[tooltipItem.datasetIndex].label || '';
if (label) {
label += ': ';
}
label += Math.round(tooltipItem.yLabel * 100) / 100;
return label;
}
}
}
}
});
现在让我写一下我使用标签回调功能的场景。
让我们从记录标签回调函数的参数开始,你会看到类似于这里数据集的结构,数组由你想在图表中绘制的不同线条组成。
在我的例子中是 4,这就是为什么 datasets 数组的长度是 4。
就我而言,每次我将鼠标悬停在图表中的一条线上时,我都必须对每个数据集执行一些计算,并且必须确定正确的线。
为了区分不同的行并根据其他行的数据操作悬停工具提示的数据,我必须编写此逻辑。
callbacks: {
label: function (tooltipItem, data) {
console.log('data', data);
console.log('tooltipItem', tooltipItem);
let updatedToolTip: number;
if (tooltipItem.datasetIndex == 0) {
updatedToolTip = tooltipItem.yLabel;
}
if (tooltipItem.datasetIndex == 1) {
updatedToolTip = tooltipItem.yLabel - data.datasets[0].data[tooltipItem.index];
}
if (tooltipItem.datasetIndex == 2) {
updatedToolTip = tooltipItem.yLabel - data.datasets[1].data[tooltipItem.index];
}
if (tooltipItem.datasetIndex == 3) {
updatedToolTip = tooltipItem.yLabel - data.datasets[2].data[tooltipItem.index]
}
return updatedToolTip;
}
}
当您必须在折线图中绘制不同的线并根据图表中同一索引中属于不同线的其他点的数据来操作线的悬停点的工具提示时,上述方案将派上用场.