在Chart.js V1.0中,我会添加tooltipTemplate: "<%if (label){%><%=label %>: <%}%><%= '€' + value %>"
以添加欧元符号作为工具提示标签的前缀。但是,这在V2中不再有效。有人知道新方法吗?我似乎无法找到它。
非常感谢!
答案 0 :(得分:95)
在V2.0中,不推荐使用tooltipTemplate选项。相反,您可以使用回调来修改显示的工具提示。有一个使用回调here的示例,您可以在 Chart.defaults.global.tooltips
下的documentation中找到可能的回调。在你的情况下,我会做以下事情:
MyArray
不要忘记设置HTML元标记:
window.myLine = new Chart(chart, {
type: 'line',
data: lineChartData,
options: {
tooltips: {
enabled: true,
mode: 'single',
callbacks: {
label: function(tooltipItems, data) {
return tooltipItems.yLabel + ' €';
}
}
},
}
});
答案 1 :(得分:39)
除了iecs&#39;回答,如果您想要返回完全默认文本并添加更多内容(例如您的情况下为€符号),请使用以下语法:
var ctx = $(chartCanvas);
window.chartObject = new Chart(ctx, {
type: 'bar',
data: chartData,
options: {
tooltips: {
callbacks: {
label: function(tooltipItems, data) {
return data.datasets[tooltipItems.datasetIndex].label +': ' + tooltipItems.yLabel + ' €';
}
}
}
}
});
答案 2 :(得分:12)
看看是否有帮助:
var config = {
options: {
tooltips: {
callbacks: {
title: function (tooltipItem, data) { return data.labels[tooltipItem[0].index]; },
label: function (tooltipItem, data) {
var amount = data.datasets[tooltipItem.datasetIndex].data[tooltipItem.index];
var total = eval(data.datasets[tooltipItem.datasetIndex].data.join("+"));
return amount + ' / ' + total + ' ( ' + parseFloat(amount * 100 / total).toFixed(2) + '% )';
},
//footer: function(tooltipItem, data) { return 'Total: 100 planos.'; }
}
},
}
};
答案 3 :(得分:7)
如果您有一个堆积条图表(我假设是一个堆积折线图)并且您想要使用货币符号格式化单个条形图中包含的所有数据点,您可以执行类似的操作这样:
tooltips: {
mode: 'label',
callbacks: {
label: function (tooltipItems, data) {
return '$' + tooltipItems.yLabel;
}
}
},
请注意mode
。
如果您希望更好地控制工具提示,例如在图表的图例中包含标签,您可以执行以下操作:
tooltips: {
mode: 'single', // this is the Chart.js default, no need to set
callbacks: {
label: function (tooltipItems, data) {
var i, label = [], l = data.datasets.length;
for (i = 0; i < l; i += 1) {
label[i] = data.datasets[i].label + ' : ' + '$' + data.datasets[i].data[tooltipItems.index];
}
return label;
}
}
},
答案 4 :(得分:5)
刚刚更新@LucLérot的答案。 我有同样的问题,他的代码帮助了我,但没有修复它,我不得不修改它为我工作。 使用Chart.js版本2.6.0
var ctx = $(chartCanvas);
window.chartObject = new Chart(ctx, {
type: 'bar',
data: chartData,
options: {
tooltips: {
callbacks: {
label: function (tooltipItems, data) {
return data.datasets[tooltipItems.datasetIndex].label + ': ' + data.datasets[tooltipItems.datasetIndex].data[tooltipItems.index] + ' €';
}
}
}
}
});
答案 5 :(得分:2)
此设置为“标签+值+€”
options: {
legend: {
display: false
},
tooltips: {
callbacks: {
label: function(tooltipItem, data) {
return data.labels[tooltipItem.index] + ': ' + data.datasets[tooltipItem.datasetIndex].data[tooltipItem.index] + '€';
}
}
}
}
答案 6 :(得分:0)
要概括代码,让我们对数据集使用await
和unitPrefix
,例如:
unitSuffix
那么我们可以得到以下代码:
datasets: [
{
label: 'Loss Rate',
data: [],
unitSuffix: "%",
},
{
label: 'Price',
data: [],
unitPrefix: "$",
},