Custom Legend with ChartJS v2.0(使用 ChartJS v2.0 自定义图例)
问题描述
我正在尝试在 ChartJS v2.0 中创建自定义图例模板.在 ChartJS 的 v1* 中,我只是向新的 Chart 构造函数添加了一个属性,例如...
I'm trying to create a custom legend template in ChartJS v2.0. In v1* of ChartJS I simply added a property to the new Chart constructor such as...
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>'
我似乎无法在 v2.0 中找到有关此选项的任何文档.它甚至不再可用了吗?谁能举例说明如何做到这一点?
I can't seem to find any documentation in v2.0 for this option. Is it even available anymore? Can anyone show an example of how to accomplish this?
谢谢!
更新 - 下面的工作代码
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("");
            }
推荐答案
有个legendCallback函数:
legendCallback 函数 函数(图表){ }
生成图例的函数.接收要从中生成图例的图表对象.默认实现返回一个 HTML 字符串.
legendCallback Function
function (chart) { }
Function to generate a legend. Receives the chart object to generate a legend from. Default implementation returns an HTML string.
详情可以在这里找到
查看此问题以获取默认图例回调:
legendCallback: function(chart) { 
    var text = []; 
    text.push('<ul class="' + chart.id + '-legend">'); 
    for (var i = 0; i < chart.data.datasets.length; i++) { 
        text.push('<li><span style="background-color:' + 
                   chart.data.datasets[i].backgroundColor + 
                   '"></span>'); 
        if (chart.data.datasets[i].label) { 
            text.push(chart.data.datasets[i].label); 
        } 
        text.push('</li>'); 
    } 
    text.push('</ul>'); 
    return text.join(''); 
}
                        这篇关于使用 ChartJS v2.0 自定义图例的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:使用 ChartJS v2.0 自定义图例
				
        
 
            
        基础教程推荐
- Node.js 有没有好的索引/搜索引擎? 2022-01-01
 - 为什么我在 Vue.js 中得到 ERR_CONNECTION_TIMED_OUT? 2022-01-01
 - 如何使用 CSS 显示和隐藏 div? 2022-01-01
 - 如何使用sencha Touch2在单页中显示列表和其他标签 2022-01-01
 - 什么是不使用 jQuery 的经验技术原因? 2022-01-01
 - WatchKit 支持 html 吗?有没有像 UIWebview 这样的控制器? 2022-01-01
 - 如何在特定日期之前获取消息? 2022-01-01
 - Javascript 在多个元素上单击事件侦听器并获取目标 2022-01-01
 - 每次设置弹出窗口的焦点 2022-01-01
 - jQuery File Upload - 如何识别所有文件何时上传 2022-01-01
 
    	
    	
    	
    	
    	
    	
    	
    	
						
						
						
						
						
				
				
				
				