2016-11-18 15 views
1

私はChartJsを小さなプロジェクトに使用しています。もちろん、ラベルを選択解除すると、グラフ自体が調整されますが、私の番号も自動的に更新されます。 %をすべて入れました。ラベルが削除された場合は、自動的に更新されます。私はこれを行う方法を私に説明してください。このAPIを使用して、初心者だラベルの自動更新

var ctx = document.getElementById("myChart"); 
 
var myChart = new Chart(ctx, { 
 
    type: 'doughnut', 
 
    data: { 
 
    labels: [ 
 
     "Marche", 
 
     "Course", 
 
     "Natation", 
 
     "Vélo" 
 
    ], 
 
    datasets: [{ 
 
     data: [65.45, 10, 10, 14.55], 
 
     backgroundColor: [ 
 
     "#00ff00", 
 
     "#008fb3", 
 
     "#ff0000", 
 
     "#ffff00", 
 
     ], 
 
     borderWidth: 1 
 
    }] 
 
    }, 
 
    options: { 
 
    tooltips: { 
 
     callbacks: { 
 
     label: function(tooltipItem, data) { 
 
      var allData = data.datasets[tooltipItem.datasetIndex].data; 
 
      var tooltipLabel = data.labels[tooltipItem.index]; 
 
      var tooltipData = allData[tooltipItem.index]; 
 
      var total = 0; 
 
      for (var i in allData) { 
 
      total += allData[i]; 
 
      } 
 
      var tooltipPercentage = Math.round((tooltipData/total) * 100); 
 
      return tooltipLabel + ': ' + tooltipData + ' %'; 
 
     } 
 
     } 
 
    }, 
 
    title: { 
 
     display: true, 
 
     text: 'Récapitulatif des séances de sport', 
 
     fontColor: "#000" 
 
    }, 
 

 
    legend: { 
 
     display: true, 
 
     labels: { 
 
     fontColor: '#000', 
 
     } 
 

 
    } 
 
    } 
 
});
.graphsize { 
 
    width: 500px; 
 
    height: 500px; 
 
    border: solid black 5px; 
 
    border-radius: 15px; 
 
} 
 
body { 
 
    margin-left: 27%; 
 
    margin-right: 25%; 
 
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.4.0/Chart.js"></script> 
 
<div class="graphsize"> 
 

 
    <canvas id="myChart"></canvas> 
 
</div>

: はここに私の現在のコードです。

トリスタン

+0

はあなたのスニペットでChart.jsライブラリをリンクを検討し、それはチャートがIIRCを生成することができます。 – Crowes

+0

私はそれを追加できる方法はありますか?私はここでかなり新しいです –

+0

CDNを使用して、スクリプトファイルにリンクしてください。 – Crowes

答えて

0

折れ線グラフとは異なりますが、ヘルパーメソッドchart.isDatasetVisibleを使用することはできませんので、あなたは伝説をクリックするとドーナツグラフは、データセットを隠していませんが、あなたはメタデータchartjsは、データポイントについて、内部で使用していますアクセスすることができますそれはあなたが を隠されているすべてのデータ項目を除外することができ、合計を作成するループでこれを使用して

data.datasets[DATASET_INDEX]._meta[0].data[DATA_ITEM_INDEX].hidden

隠されているかどうかを確認します

var ctx = document.getElementById("myChart"); 
 
var myChart = new Chart(ctx, { 
 
    type: 'doughnut', 
 
    data: { 
 
    labels: [ 
 
     "Marche", 
 
     "Course", 
 
     "Natation", 
 
     "Vélo" 
 
    ], 
 
    datasets: [{ 
 
     data: [65.45, 10, 10, 14.55], 
 
     backgroundColor: [ 
 
     "#00ff00", 
 
     "#008fb3", 
 
     "#ff0000", 
 
     "#ffff00", 
 
     ], 
 
     borderWidth: 1 
 
    }] 
 
    }, 
 
    options: { 
 
    tooltips: { 
 
     callbacks: { 
 
     label: function(tooltipItem, data) { 
 
      var allData = data.datasets[tooltipItem.datasetIndex].data; 
 
      var tooltipLabel = data.labels[tooltipItem.index]; 
 
      var tooltipData = allData[tooltipItem.index]; 
 
      var total = 0; 
 
      for (var i in allData) { 
 
      if (!data.datasets[tooltipItem.datasetIndex]._meta[0].data[i].hidden) { 
 
       total += allData[i]; 
 
      } 
 

 
      } 
 
      var tooltipPercentage = Math.round((tooltipData/total) * 100); 
 

 
      return tooltipLabel + ': ' + tooltipPercentage + ' %'; 
 
     } 
 
     } 
 
    }, 
 
    title: { 
 
     display: true, 
 
     text: 'Récapitulatif des séances de sport', 
 
     fontColor: "#000" 
 
    }, 
 

 
    legend: { 
 
     display: true, 
 
     labels: { 
 
     fontColor: '#000', 
 
     } 
 

 
    } 
 
    } 
 
});
.graphsize { 
 
    width: 500px; 
 
    height: 500px; 
 
    border: solid black 5px; 
 
    border-radius: 15px; 
 
} 
 
body { 
 
    margin-left: 27%; 
 
    margin-right: 25%; 
 
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.4.0/Chart.js"></script> 
 
<div class="graphsize"> 
 

 
    <canvas id="myChart"></canvas> 
 
</div>

+0

本当にありがとうございます。 –

+0

これがあなたの質問に答えるならば、あなたはそれを答えとしてマークすることもできますし、質問を未回答のままにしたり、質問をあなたの探しているものに更新したりすることもできません – Quince