Javascript 计算ChartJS中工具提示中的值
我使用chartJS显示包含2个或3个数据集的数据 我可以让它不仅显示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
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 + " %";
},