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

时间:2015-10-14 02:03:11

标签: javascript label chart.js

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

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


我该怎么办?

1 个答案:

答案 0 :(得分:1)

按标签更改工具提示模板

您可以使用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函数。除非您想要更改库代码,否则使用全局对象将是这样做的方式(但请注意,它不是很好的设计)。

小提琴 - http://jsfiddle.net/z1nfqhfn/

按DataSet更改工具提示模板

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

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)] %>"
});

小提琴 - http://jsfiddle.net/fnu0dyd2/