如何在 pie chart.js 中创建图例位置?

Posted

技术标签:

【中文标题】如何在 pie chart.js 中创建图例位置?【英文标题】:How to create legend position in pie chart.js? 【发布时间】:2018-08-31 13:03:57 【问题描述】:

我正在使用图表 js 来开发我的饼图。我想像这样创建图例位置。任何人请帮我解决这个问题...

这是我的代码...我实际上想要图片一样的结果。当我在 html 中使用 css zoom:70% 并使 javascript 无法工作时,我得到了错误..

<!DOCTYPE html>
<html>
<head>
	<title></title>
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
	<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.4.0/Chart.min.js"></script>
</head>
<style type="text/css">
  body background-color: #1f1d1d; font-family: Roboto, Myriad Pro, Segoe UI;zoom:70%;
  .col-sm-1.content  border: 2px solid #1f1d1d
</style>
<body>
	  <div class="col-sm-1 content" style="background-color: #4f4f4f; height:377px;"><br><br><br>
        <canvas id="myChartBBC" style="width:375px; height: 375px;"></canvas>
      <br>
        <p style="text-align:center; color: #fff;font-size: 14px;"><i>Browse by Channel</i></p>
      </div>
</body>
<script>
  var ctx = document.getElementById('myChartBBC').getContext('2d');
  var chart = new Chart(ctx, 
      // The type of chart we want to create
      type: 'pie',
      // The data for our dataset
      data: 
          labels: ["USSD", "URP", "MyTsel App", "Chatbot"],
          datasets: [
              backgroundColor: ['rgb(12, 146, 204)',
                       'rgb(255, 67, 0)',
                       'rgb(131, 0, 255)',
                       'rgb(250, 255, 0)'
                       ],
              borderColor: ['rgb(12, 146, 204)',
                      'rgb(255, 67, 0)',
                      'rgb(131, 0, 255)',
                      'rgb(250, 255, 0)'
                      ],
              data: [73, 17, 3, 7],
          ]
      ,

      // Configuration options go here
      options: 
        legend:
          position: 'bottom',
          labels:
            fontColor: "white"
          
        
      
  );
  </script>
</html>

【问题讨论】:

【参考方案1】:

试试这个更新的代码。

<!doctype html>
<html>

<head>
    <title>Pie Chart</title>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
    <style type="text/css">
    body 
        background-color: #1f1d1d;
        font-family: Roboto, Myriad Pro, Segoe UI;
        width: 800px;
        height: 800px;
    
    </style>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.4.0/Chart.min.js"></script>
</head>

<body>
    <div id="canvas-holder" style="width:30%;background-color: #4f4f4f; height:35%;">
        <canvas id="chart-area"></canvas>
        <p style="text-align:center; color: #fff;font-size: 14px;"><i>Browse by Channel</i></p>
    </div>
    <script>
    var config = 
        type: 'pie',
        data: 
            labels: ["USSD", "URP", "MyTsel App", "Chatbot"],
            datasets: [
                backgroundColor: ['rgb(12, 146, 204)',
                    'rgb(255, 67, 0)',
                    'rgb(131, 0, 255)',
                    'rgb(250, 255, 0)'
                ],
                borderColor: ['rgb(12, 146, 204)',
                    'rgb(255, 67, 0)',
                    'rgb(131, 0, 255)',
                    'rgb(250, 255, 0)'
                ],
                data: [73, 17, 3, 7],
            ]
        ,
        options: 
            responsive: true,
            legend: 
                position: 'bottom',
                labels: 
                    fontColor: "white",
                    boxWidth: 20,
                    padding: 20
                
            
        
    ;

    window.onload = function() 
        var ctx = document.getElementById('chart-area').getContext('2d');
        window.myPie = new Chart(ctx, config);
    ;
    </script>
</body>

</html>

【讨论】:

以上是关于如何在 pie chart.js 中创建图例位置?的主要内容,如果未能解决你的问题,请参考以下文章

Chart.js:将标题/图例位置更改为右侧

在 R Shiny 中的 Leaflet 中创建具有自定义绝对位置的图例

Chart.js:禁用 Y 轴,当通过图例禁用图形时

如何使用 Chart.js v1 在饼图中添加彩色图例框?

Chart.js:在图例点击时刷新第二个Y轴步骤

onClick 事件隐藏数据集 Chart.js V2