Javascript 计算ChartJS中工具提示中的值

Javascript 计算ChartJS中工具提示中的值,javascript,tooltip,chart.js,Javascript,Tooltip,Chart.js,我使用chartJS显示包含2个或3个数据集的数据 我可以让它不仅显示tooltipItem.yLabel,而且显示yLabel(dataset1/(dataset1+dataset2))总量的百分比吗? 我想将此值放入后标签中 ChartJS选项代码: tooltips : { callbacks : { label : function(tooltipItem, data) { return data.datasets[tooltipIte

我使用chartJS显示包含2个或3个数据集的数据

我可以让它不仅显示
tooltipItem.yLabel
,而且显示
yLabel(dataset1/(dataset1+dataset2))
总量的百分比吗? 我想将此值放入
后标签中

ChartJS选项代码:

tooltips : {

    callbacks : {

        label : function(tooltipItem, data) {
            return data.datasets[tooltipItem.datasetIndex].label + ': ' + tooltipItem.yLabel;
        },
        afterLabel : function(tooltipItem, data) {
            return dataset1/(dataset1+dataset2);
        },
    }
}
我的“Y”数据集是数字数组。 X数据集是日期数组。
我似乎不知道chart.min.js是如何获取这些值的。

是的,你可以。您所需要做的就是遍历所有数据集,并对与索引号对应的值求和。然后你可以把你的数字除以这个和。以下代码适用于我:

afterLabel: function(tooltipItem, data){
  var total = 0;
  for (i = 0; i < data.datasets.length; i++) {
    total += data.datasets[i].data[tooltipItem.datasetIndex];
  }
  var percentage = data.datasets[tooltipItem.datasetIndex].data[tooltipItem.index] / total * 100;
  var percentage = percentage.toFixed(2); // Trim decimal part
  return "Percentage: %" + percentage;
}

如果你喜欢在我的例子中修剪/平铺/缩小百分比,你可能要考虑一个事实,即百分比的百分比在你的图表中可能不等于100。p> 我想做什么就做什么,谢谢@Kubilay Karpat让我想到了如何找到所需的价值观。我想代表你,但我没有足够的钱

afterLabel : function(tooltipItem, data) {
    var total = 0;
    total = parseInt(data.datasets[0].data[tooltipItem.index]) + parseInt(data.datasets[1].data[tooltipItem.index]);                    
    var percentage = data.datasets[tooltipItem.datasetIndex].data[tooltipItem.index] / total * 100;
    var percentage = percentage.toFixed(2);
    return percentage + " %";
},

谢谢你的努力,但那不是我真正需要的。正如我所说,我有两个数据集。因此,每天Y轴上有2个点。我想标签上写着Y点1悬停/(Y点1悬停+Y点2)*100。所以,基本上,它应该是Y点1%+Y点2%==100%
afterLabel : function(tooltipItem, data) {
    var total = 0;
    total = parseInt(data.datasets[0].data[tooltipItem.index]) + parseInt(data.datasets[1].data[tooltipItem.index]);                    
    var percentage = data.datasets[tooltipItem.datasetIndex].data[tooltipItem.index] / total * 100;
    var percentage = percentage.toFixed(2);
    return percentage + " %";
},