首页 文章

chart.js图例不适用于饼图

提问于
浏览
1

我正在写一个小应用程序 . 我正在使用chart.js绘制饼图 . 我能够成功绘制饼图 . 但不知何故传奇无效 . 我可以知道我哪里出错吗?我的代码如下所示:

Code:

<body onload = onLoading()>
<div class="container">
<div class="col-xs-12">

    <div class="page-header">
        <h3>Test</h3>       
    </div>

    <div class="carousel slide" id="myCarousel">
        <nav>
            <ul class="control-box pager">
                <li><a data-slide="prev" href="#myCarousel" class=""><i class="glyphicon glyphicon-chevron-left"></i></a></li>
                <li><a data-slide="next" href="#myCarousel" class=""><i class="glyphicon glyphicon-chevron-right"></i></li>
            </ul>
        </nav>
       <!-- /.control-box -->
        <div class="carousel-inner">
            <div class="item active">

                        <div class="col-sm-6">
                            <div class="fff">
                                <div class="thumbnail" id="tmp">
                                   <h3>A</h3><canvas id="i1"></canvas>
                                </div>

                            </div>
                        </div>
                        <div class="col-sm-6">
                            <div class="fff">
                                <div class="thumbnail">
                                    <h3>B</h3><canvas id="i2"></canvas>
                                </div>

                            </div>
                        </div>
                        <div class="col-sm-6">
                            <div class="fff">
                                <div class="thumbnail">
                                     <h3>C</h3><canvas id="i3"></canvas>
                                </div>

                            </div>
                        </div>
                        <div class="col-sm-6">
                            <div class="fff">
                                <div class="thumbnail">
                                    <h3>D</h3><canvas id="i4"></canvas>
                                </div>

                            </div>
                        </div>

              </div><!-- /Slide1 --> 

        </div>




    </div><!-- /#myCarousel -->

</div><!-- /.col-xs-12 -->          

</div><!-- /.container -->


<script type="text/javascript">
// Carousel Auto-Cycle
  $(document).ready(function() {
    $('.carousel').carousel({
      interval: 6000
    })
  });

  function onLoading()

{          

var pieData = [
   {
      value: 25,
      label: 'Java',
      color: "#F38630"
   },
   {
      value: 10,
      label: 'Scala',
      color: "#F34353",
   },
   {
      value: 30,
      label: 'PHP',
      color: '#B276B2 '
   },
   {
      value : 35,
      label: 'HTML',
      color: '#5DA5DA'
   }
];
var context = document.getElementById('i1').getContext('2d');
var skillsChart = new Chart(context).Pie(pieData);
document.getElementById('i1').innerHTML = skillsChart.generateLegend();

context = document.getElementById('i2').getContext('2d');
skillsChart = new Chart(context).Pie(pieData);
document.getElementById('i2').innerHTML = skillsChart.generateLegend();

context = document.getElementById('i3').getContext('2d');
skillsChart = new Chart(context).Pie(pieData);
document.getElementById('i3').innerHTML = skillsChart.generateLegend();

context = document.getElementById('i4').getContext('2d');
skillsChart = new Chart(context).Pie(pieData);
document.getElementById('i4').innerHTML = skillsChart.generateLegend();
}

</script>
</body>

1 回答

  • 0

    必须将图例添加到与canvas元素分开的元素中 . 所以你需要的是类似的东西

    ...
    <h3>A</h3><canvas id="i1"></canvas>
    <div id="i1-legend"></div>
    ...
    

    用脚本

    document.getElementById('i1-legend').innerHTML = skillsChart.generateLegend();
    

    此外,您可能需要CSS来正确设置样式,就像这样

    ul.pie-legend {
        list-style: none;
    }
    ul.pie-legend span {
        display: inline-block;
        width: 10px;
        height: 10px;
        margin-right: 10px;
    }
    

相关问题