Chart.js:向表格布局图例添加工具提示

Chart.js:向表格布局图例添加工具提示,chart.js,Chart.js,我不知道当鼠标悬停在图例的适当区域时,如何显示极坐标图工具提示。我对图例进行了更严格的样式设计,并且采用了表格格式,因此我找到的通过图例获取工具提示的示例代码不太有效 你可以在行动中看到它 工具提示会出现,但不可靠,而且在将鼠标悬停在表的正确部分时也不会出现。(我还注意到,当鼠标悬停在图表上时,工具提示似乎有点挑剔。) 下面是代码(实际上我正在将其转换为一个WP插件,因此js在一些php中): 函数显示\u polar\u chartjs\u在报告中(){ 全球$report\U数据; $rep

我不知道当鼠标悬停在图例的适当区域时,如何显示极坐标图工具提示。我对图例进行了更严格的样式设计,并且采用了表格格式,因此我找到的通过图例获取工具提示的示例代码不太有效

你可以在行动中看到它

工具提示会出现,但不可靠,而且在将鼠标悬停在表的正确部分时也不会出现。(我还注意到,当鼠标悬停在图表上时,工具提示似乎有点挑剔。)

下面是代码(实际上我正在将其转换为一个WP插件,因此js在一些php中):

函数显示\u polar\u chartjs\u在报告中(){
全球$report\U数据;
$report\u polar\u chartjs='1
var trimergencePolarData=[
{
值:'.$report_data['subscale_3']['points'].',
颜色:“'.$report_data['subscale_3']['color'].”,
突出显示:“'.$report_data['subscale_3']['highlight'].”,
标签:“'.$report_data['subscale_3']['name'].”,
相对级别:“.$report_data['SUBSCRESE_3']['REPARTIVE_level']”,
激活:“'.$report_data['subscale_3']['level']”
},          
{
值:'.$report_data['subscale_2']['points'].',
颜色:“'.$report_data['subscale_2']['color'].”,
突出显示:“'.$report_data['subscale_2']['highlight'].”,
标签:“'.$report_data['subscale_2']['name']”,
相对级别:“.$report_data['SUBSCRESE_2']['REPARTIVE_level'].”,
激活:“'.$report_data['subscale_2']['level']”
},
{
值:'.$report_data['subscale_1']['points'].',
颜色:“'.$report_data['subscale_1']['color']”,
突出显示:“'.$report_data['subscale_1']['highlight'].”,
标签:“'.$report_data['subscale_1']['name']”,
relativeLevel:“'.$report_data['subscale_1']['relative_level'].”,
激活:“'.$report_data['subscale_1']['level']”
}
];
window.onload=函数(){
var ctx=document.getElementById(“polar_chartjs”).getContext(“2d”);
window.mytrimergencePolarArea=新图表(ctx)。trimergencePolarArea(trimergencePolarData{
startAngle:3.65,
回答:是的,
scaleOverride:对,
比例:9,
scaleStartValue:5,
刻度宽度:5,
没错,
scaleShowLabels:false,
错误:错误,
动画:没错,
动画步骤:100,
动画片:对,
没错,
动画化:“easeInBounce”,
工具脚本模板:“:共50个”,
legendTemplate:“ul.TrimergencePolarea-legend{list style:none;}.TrimergencePolarea-legend span{height:10px;width:10px;display:inline block;margin right:2px;border radius:3px;}
    \124; |/ul>” }); var legendHolder=document.getElementById(“图例”); legendHolder.innerHTML=mytrimergencePolarArea.generateLegend(); helpers=Chart.helpers; //在模块甜甜圈本身之后包含一个html图例模板 helpers.each(legendHolder.firstChild.childNodes,函数(legendNode,索引){ addEvent(legendNode,“mouseover”,function(){ var activeSegment=mytrimergencePolarArea.segments[索引]; activeSegment.save(); activeSegment.fillColor=activeSegment.highlightColor; mytrimergencePolarArea.showTooltip([activeSegment]); activeSegment.restore(); }); }); addEvent(legendHolder.firstChild,“mouseout”,function()){ mytrimergencePolarArea.draw(); }); canvas.parentNode.appendChild(legendHolder.firstChild); }; '; 返回$report\u polar\u chartjs; }
    function display_polar_chartjs_in_report(){
    global $report_data;
    $report_polar_chartjs = '<script>
                var trimergencePolarData = [
                        {
                            value: '.$report_data['subscale_3']['points'].',
                            color: "'.$report_data['subscale_3']['color'].'",
                            highlight: "'.$report_data['subscale_3']['highlight'].'",
                            label: "'.$report_data['subscale_3']['name'].'",
                            relativeLevel: "'.$report_data['subscale_3']['relative_level'].'",
                            activation: "'.$report_data['subscale_3']['level'].'"
                        },          
                        {
                            value: '.$report_data['subscale_2']['points'].',
                            color: "'.$report_data['subscale_2']['color'].'",
                            highlight: "'.$report_data['subscale_2']['highlight'].'",
                            label: "'.$report_data['subscale_2']['name'].'",
                            relativeLevel: "'.$report_data['subscale_2']['relative_level'].'",
                            activation: "'.$report_data['subscale_2']['level'].'"

                        },
                        {
                            value: '.$report_data['subscale_1']['points'].',
                            color: "'.$report_data['subscale_1']['color'].'",
                            highlight: "'.$report_data['subscale_1']['highlight'].'",
                            label: "'.$report_data['subscale_1']['name'].'",
                            relativeLevel: "'.$report_data['subscale_1']['relative_level'].'",
                            activation: "'.$report_data['subscale_1']['level'].'"

                        }
                    ];

                    window.onload = function(){
                        var ctx = document.getElementById("polar_chartjs").getContext("2d");
                        window.mytrimergencePolarArea = new Chart(ctx).trimergencePolarArea(trimergencePolarData, {
                            startAngle: 3.65,
                            responsive:true,
                            scaleOverride:true,
                            scaleSteps:9,
                            scaleStartValue:5,
                            scaleStepWidth:5,
                            animateScale : true,
                            scaleShowLabels:false,
                            segmentShowStroke : false,
                            animation : true,
                            animationSteps : 100, 
                            animateRotate : true, 
                            animateScale : true, 
                            animationEasing: "easeInBounce",
                            tooltipTemplate : "<%if (label){%><%=label%>: <%}%><%= value %> out of 50 <%=activation%>",
                            legendTemplate : "<style>ul.trimergencepolararea-legend {list-style:none;} .trimergencepolararea-legend span {height:10px; width:10px; display:inline-block; margin-right:2px; border-radius:3px;}</style><ul class=\"<%=name.toLowerCase()%>-legend\"><% for (var i=0; i<segments.length; i++){%><li><span style=\"background-color:<%=segments[i].fillColor%>\"></span><%=segments[i].label%> | <%=segments[i].value%> | <%=segments[i].activation%> | <%=segments[i].relativeLevel%></li><%}%></ul>"

                    });
        var legendHolder = document.getElementById("legend");
        legendHolder.innerHTML = mytrimergencePolarArea.generateLegend();
        helpers = Chart.helpers;
        // Include a html legend template after the module doughnut itself
        helpers.each(legendHolder.firstChild.childNodes, function(legendNode, index){
            helpers.addEvent(legendNode, "mouseover", function(){
                var activeSegment = mytrimergencePolarArea.segments[index];
                activeSegment.save();
                activeSegment.fillColor = activeSegment.highlightColor;
                mytrimergencePolarArea.showTooltip([activeSegment]);
                activeSegment.restore();
            });
        });
        helpers.addEvent(legendHolder.firstChild, "mouseout", function(){
            mytrimergencePolarArea.draw();
        });
        canvas.parentNode.appendChild(legendHolder.firstChild);


                    };



            </script>
            <div id="polar_chartjs_holder" class="uk-grid"><canvas id="polar_chartjs" class="uk-width-1-1"></canvas>
            <div id="legend" class="uk-width-1-1"></div></div>';
            return $report_polar_chartjs;

}