列の値に応じて棒の色が異なるangular-chart.jsを使用して棒グラフを作成しています。
値が 5 を超える列は赤色でなければならず、緑色でなければなりません。正常に動作していますが、棒の 1 つにマウスを合わせると、その色が変わります (おそらく棒グラフの前の棒の値によって異なります)。これは非常に面倒です。
どうすればこの問題を解決できますか?
HTML :
<head>
<script src="Chart.js"></script>
<script src="https://code.angularjs.org/1.3.15/angular.js"></script>
<script src="chart-angular.js"></script>
<script src="script.js"></script>
</head>
<body ng-controller="chartMaker">
<canvas id="locationBar" class="chart chart-bar" data="chartParams.votes"
labels="chartParams.listOfLocations" series="chartParams.series"
colours="chartParams.colours" options="chartParams.options">
</canvas>
</body>
</html>
そして、条件付きの各バーの色を設定しています
var graph = angular.module('graph', ['chart.js'], function(){});
graph.controller('chartMaker',["$scope",
function($scope){
$scope.chartParams = {
listOfLocations: ['Trenzalore','Earth','Caprica','Sol','Tau Ceti'],
votes: [[5,10,6,7,2,3]],
series: ["Nice Places"],
colours: [{fillColor:[]}],
options: {barShowStroke : false}
};
for(i=0;i<$scope.chartParams.votes[0].length;i++){
if($scope.chartParams.votes[0][i] > 5){
$scope.chartParams.colours[0].fillColor[i]="#FF0000"
}else{
$scope.chartParams.colours[0].fillColor[i]="#00FF00"
}
}
}
]);
このプランカーが同じ問題を抱えているのを見ることができます棒グラフのバーに異なる色を設定する
SO に関する 1 つの投稿を読んで、更新メソッドを呼び出すように提案された人もいましたが、JS ファイルから更新メソッドを呼び出すにはどうすればよいですか?