すべての点のラベルの色を変更する場合は、オプションpointLabelFontColor
を使用します。
ポイントラベルの色を個別に変更する場合は、この機能を実装していないため、chart.jsを変更する必要があります。
変更chart.jsライン:
ctx.fillStyle = this.pointLabelFontColor;
へ:
ctx.fillStyle = this.labels[i].fillStyle;
から
ここ
は個別に変化点のラベルの色を達成するために必要なchart.js修正されています
および
ctx.fillText(this.labels[i], pointLabelPosition.x, pointLabelPosition.y);
に:から
textWidth = this.ctx.measureText(template(this.templateString, { value: this.labels[i] })).width + 5;
に:
textWidth = this.ctx.measureText(template(this.templateString, { value: this.labels[i].text })).width + 5;
から
ctx.fillText(this.labels[i].text, pointLabelPosition.x, pointLabelPosition.y);
と
あなたのHTMLは次のようになります。あなたは、ラベルを設定する両方の方法のサポートを追加することができます配列としてまだラベルを使用することになり、他のレーダーチャート(配列とオブジェクト)に同じchart.jsを使用している場合は交換
<html>
<head>
<title>Radar Chart - Example</title>
<script type="text/javascript" src="chartjs/Chart.js"></script>
</head>
<body>
<canvas id="myChart" width="400" height="400"></canvas>
<script>
var data = {
labels: [{
text: "Eating",
fillStyle: "#01A4E0"
}, {
text: "Drinking",
fillStyle: "#FFE897"
}, {
text: "Sleeping",
fillStyle: "#428e2a"
}, {
text: "Designing",
fillStyle: "#6b3a0d"
}, {
text: "Coding",
fillStyle: "#0d5e6b"
},{
text: "Cycling",
fillStyle: "#450d6b"
},{
text: "Running",
fillStyle: "#6b0d36"
}],
datasets: [{
label: "My First dataset",
fillColor: "rgba(220,220,220,0.2)",
strokeColor: "rgba(220,220,220,1)",
pointColor: "rgba(220,220,220,1)",
pointStrokeColor: "#fff",
pointHighlightFill: "#fff",
pointHighlightStroke: "rgba(220,220,220,1)",
data: [65, 59, 90, 81, 56, 55, 40]
}, {
label: "My Second dataset",
fillColor: "rgba(151,187,205,0.2)",
strokeColor: "rgba(151,187,205,1)",
pointColor: "rgba(151,187,205,1)",
pointStrokeColor: "#fff",
pointHighlightFill: "#fff",
pointHighlightStroke: "rgba(151,187,205,1)",
data: [28, 48, 40, 19, 96, 27, 100]
}]
};
var ctx = document.getElementById('myChart').getContext('2d');
var myRadarChart = new Chart(ctx).Radar(data);
</script>
</body>
</html>
これらの代わりに上記のchart.js行を使用してください:
ctx.fillStyle = this.labels[i].fillStyle ? this.labels[i].fillStyle : this.pointLabelFontColor;
ctx.fillText((this.labels[i].text ? this.labels[i].text : this.labels[i]), pointLabelPosition.x, pointLabelPosition.y);
textWidth = this.ctx.measureText(template(this.templateString, { value: (this.labels[i].text ? this.labels[i].text : this.labels[i]) })).width + 5;
スタイルシートを使用することができます。しかしマークアップがなければ、私は確信が持てません。 – Joe