我尝试在ChartJS v2.0中创建一个自定义图例模板。在ChartJS的v1* 中,我只是向新的Chart构造函数添加了一个属性,例如...
legendTemplate : '<ul>'
+'<% for (var i=0; i<datasets.length; i++) { %>'
+'<li>'
+'<span style=\"background-color:<%=datasets[i].lineColor%>\"></span>'
+'<% if (datasets[i].label) { %><%= datasets[i].label %><% } %>'
+'</li>'
+'<% } %>'
+'</ul>'
我在2.0版本中找不到任何关于这个选项的文档。它现在还可用吗?有人能给出一个例子来说明如何完成这个操作吗?
谢谢你,谢谢你
更新-工作代码如下
legendCallback: function(chart) {
console.log(chart.data);
var text = [];
text.push('<ul>');
for (var i=0; i<chart.data.datasets[0].data.length; i++) {
text.push('<li>');
text.push('<span style="background-color:' + chart.data.datasets[0].backgroundColor[i] + '">' + chart.data.datasets[0].data[i] + '</span>');
if (chart.data.labels[i]) {
text.push(chart.data.labels[i]);
}
text.push('</li>');
}
text.push('</ul>');
return text.join("");
}
6条答案
按热度按时间flvtvl501#
如果你们浏览了这篇文章,并尝试了张贴的答案,但没有工作,尝试这一个:
然后在下面添加:
要创建图例,请确保具有元素
<div id="chart-legends"></div>
zsbz8rwp2#
有一个
legendCallback
函数:图例回调*函数 *
function (chart) { }
用于生成图例的函数。接收要从中生成图例的图表对象。默认实现返回HTML字符串。
详细信息可在此处找到
see this issue表示默认图例回调:
hyrbngr73#
我希望这对你有帮助
第一个
Codepen Example
5f0d552i4#
如果人们在ChartJS 3.6.0中寻找解决方案(也可能是其他版本)
它们提供了一个HTML图例,您可以在其中使用插件选项指定所需的确切HTML。以下是配置示例沿着指向以下文档的链接。
ChartJS HTML Legend
zmeyuzjn5#
这个代码对我有用
9q78igpj6#
图表JS 3.0+
我知道这个问题是专门针对chartJS 2.0的,但这是我发现的在chartJS中解决自定义图例问题的最大线索之一,所以我想分享一下我在chartJS 3.0+中添加自定义图例的发现,该发现不赞成使用
generateLegend()
函数。在chartJS 3.0+中添加图例需要使用plugins。
基本上,您可以在示例化图表时创建一个自定义插件。例如:
下面的working jsfiddle演示了这种添加自定义图例的方法。