2016-07-27 5 views
4

私は予算管理用のアプリケーションを作成していますが、私はangular-chart.jsを使用しています。angle-chart.jsのchart-dataset-overrideオプションを使用

私は初期データをオーバーライドする(主に新しいデータをグラフに追加し、各バーやラベルなどに異なる色を付ける)ために、データの値に従ってラベルと色を設定したいと考えています。 現在、私はそのコードをハードにしようとしましたが、最初の値だけが上書きされています。

yourquestionあなたは塗りつぶしの色/ラベル(各バーのための)個々のデータに/何かをしたい、であることを期待して
angular.module("app2", ["chart.js"]).controller("MixedChartCtrl", 
function($scope) { 
    $scope.colors = ['#45b7cd', '#ff6384', '#ff8e72']; 

    $scope.labels = ['', '']; 
    $scope.data = [65, 11]; 
    $scope.datasetOverride = [ 

     { 
      label: 'Override Series A', 
      borderWidth: 1, 
      type: 'bar', 
      data: [345] 
     }, 
     { 
      label: "Bar chart1", 
      borderWidth: 1, 
      type: 'bar', 
      data: [45] 
     } 

    ]; 
}); 

答えて

3

:こちらを

は、私が使用していたコードです。

上記の(あなたの)コードスニペットは、2つのデータセットがある場合に使用されます。
すべてのデータに同じプロパティ値を設定する必要がある場合は、文字列を受け取ります。配列[String] - 同じデータセット内の異なるデータに対して異なるプロパティ値を設定する場合。 (以下のように)。

$scope.data = [65,11]; 
$scope.datasetOverride = [ 
{ 
    label: ['something', 'otherthing'], 
    borderWidth: [1,2], 
    backgroundColor: ['#FF4242','#2291ff'] 
} 
] 

ここで私はあなたが動的にデータを追加している可能性があることを理解しました。
はあなたがDataSetにこのような何かデータをプッシュする必要があります。

$scope.data.push(345); 

をですから、これらのために異なるプロパティを設定したい場合は、プロパティ(配列)をプッシュする必要があります。

$scope.datasetOverride[0][label].push('someother thing'); 
$scope.datasetOverride[0][borderWidth].push(2); 
$scope.datesetOverride[0][backgroundColor].push('#46bfb8'); 

これで、前のバーの横に新しい色/ラベル/などのバーが追加されます。

私はあなたの質問を理解し、これが助けてくれることを願っています。

関連する問題