オプションを書き換える場合、思いつくのがボタンを用意して図を更新するというのがまず思いつきました。
ボタンはonclickイベントで更新処理を書きます。
<input type="button" value="Check" onclick='update(CircleChart)'>
何かしら値を書き換える場合は図の更新処理が必要になる場合と、いい感じにやってくれる場合とがあるのですがChart.jsの場合は自分で図を更新する必要があります。
調べてみるとchart.optionに新しいもの設定してupdate()をすると良いことがわかります。
チャートの更新 · Chart.js 日本語ドキュメント
tbunさんのソースコードを見るとchartjs-plugin-labels.jsを使おとしているようですが、古い書き方のようで試したところ動きませんでした。
新しい書き方をすると動きました。上記のことを踏まえると以下のようなコードができます。
function update(chart) {
chart.options = {
plugins: {
labels: {
render: function (d) { return d.label + ":" + d.percentage + "%" },
fontColor: '#000',
position: 'outside',
segment: true
}
}
}
chart.update();
}
力尽きたのであとは以下のコードを参考に続きを作ってみてください。
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta charset="utf-8">
<script src="https://cdn.jsdelivr.net/npm/chart.js@2.9.1/dist/Chart.min.js"></script>
<script src="https://cdn.jsdelivr.net/gh/emn178/chartjs-plugin-labels/src/chartjs-plugin-labels.js"></script>
</head>
<body>
<!-- <script src="js/scripts.js"></script> -->
<canvas id='CircleChart'></canvas>
<input type="button" value="Check" onclick='update(CircleChart)'>
<script>
function update(chart) {
chart.options = {
plugins: {
labels: {
render: function (d) { return d.label + ":" + d.percentage + "%" },
fontColor: '#000',
position: 'outside',
segment: true
}
}
}
chart.update();
}
var ctx = document.getElementById("CircleChart");
var CircleChart = new Chart(ctx, {
type: 'pie',
data: {
labels: ["A", "B", "C", "D", "E", "F", "G"],
datasets: [{
data: [38, 31, 21, 10, 38, 31, 21]
}]
},
options: {
legend: {
display: true
}
}
});
</script>
</script>
</body>
</html>
emn178/chartjs-plugin-labels
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。