【问题标题】:How to set legend and title for multiple pie charts using chart.js如何使用 chart.js 为多个饼图设置图例和标题
【发布时间】:2015-10-21 17:17:03
【问题描述】:

我的 php 页面有多个动态饼图,我希望使用 chart.js 为每个饼图显示图例和标题

这是我的 JS 代码:

    printf( '<script type="text/javascript" src="django/static/js/Chart.min.js"></script>' );
    printf( '<script type="text/javascript" src="extlib/jquery-min.js"></script>' );
    printf( '<script type="text/javascript">' );
    ?>
    function drawPie(canvasId,data){
    var ctx = $("#pie-canvas-" + canvasId).get(0).getContext("2d");

    var piedata = [];
    $.each(data,function(i,val){
    piedata.push({value:val.count,color:val.color,label:val.status});
    });

    new Chart(ctx).Pie(piedata);}
    <?php
    printf('</script>');

PHP 代码:

foreach ( $poolArray as $pool ) {//for multiple charts
     $data = statusPool($pool);
     echo '<td style="text-align: center;"><canvas id="pie-canvas-'
          . $canvasId
          . '" width="200" height="200"></canvas>';

     $data3 = json_encode($data, JSON_NUMERIC_CHECK);
     echo '<script type="text/javascript">drawPie('
          . $canvasId
          . ', '
          . $data3
          . ');</script>';
   }

请建议我为每个饼图设置标题和图例。

【问题讨论】:

    标签: javascript php charts


    【解决方案1】:

    参见 http://www.chartjs.org/docs/#advanced-usage-prototype-methods - generateLegend() 对象上的 generateLegend() 方法将返回图例的 HTML。然后,您可以将返回值分配给某个 DOM 元素的innerHTML

    例如,在 &lt;canvas&gt; 元素旁边添加一个 &lt;div id="legend"&gt; 元素来保存图例的 HTML,然后执行以下操作:

    var pc = new Chart(ctx).Pie(piedata);
    document.getElementById("legend").innerHTML = pc.generateLegend();
    

    要为图表添加标题,只需在 HTML 中添加一个 HTML 标题(例如 &lt;h3&gt; 元素)。我认为 Chart.js 没有提供自己的标题功能。

    【讨论】:

    • 非常感谢您的回复。我尝试了您的代码。但它简单地将标签名称显示为饼图下的文本。在我的情况下,label:value 是不可见的。如何使它在每个图表的一侧可见?
    • 您还需要一些 CSS 来设置图例的样式,每个项目都是一个包含彩色跨度的列表项。有关示例,请参见 jsbin.com/zidujerefi/1/edit?html,output
    猜你喜欢
    • 2016-07-30
    • 2012-10-30
    • 1970-01-01
    • 1970-01-01
    • 2018-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-25
    相关资源
    最近更新 更多