Chartjs 在标签中显示具有不同单位的多个信息

Chartjs display multiple info with different units in label

我知道如何显示多个信息。标签中的单位相同 by
multiTooltipTemplate: "<%=datasetLabel%> : <%= value %>%"
结果如下:
[]信息 A:50%
[]InfoB:50%

但我现在尝试用不同的单位显示信息,例如:
[]信息 A:50%
[]InfoB:50$


我该怎么做?

按标签更改工具提示模板

您可以使用 valuesObject 的 label 属性 来计算索引并使用它来选择您的交易品种,就像这样

Chart.mySymbols = ['!', '@', '#', '$', '%', '^', '&'];

var ctx = document.getElementById("myChart").getContext("2d");
var myChart = new Chart(ctx).Line(window.data, {
    multiTooltipTemplate: "<%=datasetLabel%> : <%= value %><%= Chart.mySymbols[window.data.labels.indexOf(label)] %>"
});

请注意,datamySymbols 集合都是全局可引用对象的属性(在本例中为 windowChart,但它可以是任何全局对象) .这是因为只有 valuesObject 被注入到 template 函数中。除非你想更改库代码,否则使用全局对象将是这样做的方法(但是,请注意它不是好的设计)。


Fiddle - http://jsfiddle.net/z1nfqhfn/


按数据集更改工具提示模板

如果你想通过数据集做类似的事情,那就是

Chart.mySymbols = ['°C', '%'];

var ctx = document.getElementById("myChart").getContext("2d");
var myChart = new Chart(ctx).Line(window.data, {
    multiTooltipTemplate: "<%=datasetLabel%> : <%= value %><%= Chart.mySymbols[window.data.datasets.map(function(e) { return e.label }).indexOf(datasetLabel)] %>"
});

Fiddle - http://jsfiddle.net/fnu0dyd2/