プロジェクトにng2-chartsを追加し、ドーナツとバーチャートの2つのチャートを表示しました。両方ともグレーで表示が追加されたため
<base-chart class="chart"
[colors]="chartColors"
...
</base-chart>
component.template.html
および
public chartColors:Array<any> =[
{
fillColor:'rgba(225,10,24,0.2)',
strokeColor:'rgba(11,255,20,1)',
pointColor:'rgba(111,200,200,1)',
pointStrokeColor:'#fff',
pointHighlightFill:'#fff',
pointHighlightStroke:'rgba(200,100,10,0.8)'
}, ... (3x)
component.ts
色を変更するために他のパッケージのインポートが必要ですか、またはセットアップが間違っていますか? ChromeのHTMLインスペクターには、次のHTML出力が表示されます
ng-reflect-colors="[object Object],[object Object],[object Object]"
次のようにする必要があります。
public chartColors: Array<any> = [
{ // first color
backgroundColor: 'rgba(225,10,24,0.2)',
borderColor: 'rgba(225,10,24,0.2)',
pointBackgroundColor: 'rgba(225,10,24,0.2)',
pointBorderColor: '#fff',
pointHoverBackgroundColor: '#fff',
pointHoverBorderColor: 'rgba(225,10,24,0.2)'
},
{ // second color
backgroundColor: 'rgba(225,10,24,0.2)',
borderColor: 'rgba(225,10,24,0.2)',
pointBackgroundColor: 'rgba(225,10,24,0.2)',
pointBorderColor: '#fff',
pointHoverBackgroundColor: '#fff',
pointHoverBorderColor: 'rgba(225,10,24,0.2)'
}];
グレー色はデフォルトで設定されています。つまり、プロパティ名が間違っているため、色オプションが機能しません。
ここに、色のプロパティがどのように呼び出されるかの例を示します。
@ UPDATE:
BackgroundColorのみを更新する必要がある場合、以下のコードも機能します。
public chartColors: Array<any> = [
{ // all colors in order
backgroundColor: ['#d13537', '#b0o0b5', '#coffee', ...]
}
]
また、あなたはこの方法でそれを行うことができます:
<base-chart class="chart"
[colors]="chartColors"
...
</base-chart>
そして
public chartColors: any[] = [
{
backgroundColor:["#FF7360", "#6FC8CE", "#FAFFF2", "#FFFCC4", "#B9E8E0"]
}];
//.ts_file
public chartColors() {
return [{
backgroundColor: this.alert.severityColor,
borderColor: 'rgba(225,10,24,0.2)',
pointBackgroundColor: 'rgba(225,10,24,0.2)',
pointBorderColor: '#fff',
pointHoverBackgroundColor: '#fff',
pointHoverBorderColor: 'rgba(225,10,24,0.2)'
}]
}
//.html_file
<div style="display: block">
<canvas baseChart
[datasets]="barChartData()"
[options]="barChartOptions"
[legend]="barChartLegend"
[chartType]="barChartType"
[colors]="chartColors()"
(chartHover)="chartHovered($event)"
(chartClick)="chartClicked($event)"></canvas>
</div>
アラートに添付されている値と色に基づいて、チャートの色を動的に変更する必要がありました。 @uluoの回答がすばらしいことがわかりました。クラスのプロパティから関数に変更し、アラートで動的要素に設定された色でオブジェクトを返しました。次に、関数を使用してチャートの色をバインドしましたが、それは魔法でした。私は数時間この問題に悩まされていました!
これがAngularでng2-chartsに動的な値を渡そうとしている人を助けることを願っています!