2017-01-11 116 views
2

我正在使用canvasjs製作餅圖。我在我的自定義代碼中使用它,我從XML文件中獲取服務器的響應,然後使用它來填充圖表值。我的問題是,即使對於不同的標籤,顏色在整個餅圖中保持不變,我也無法更改圖表的顏色。餅圖顏色不變

我用調試器也在哪裏它的顏色值正在改變,但我仍然無法解決它。

color: scopes.chart_color_value[i] 

我正在使用另一個配置文件,我存儲顏色值。

這裏是我的自定義代碼

$scope.loadChartValue = function (data, scopes) { 
    scopes.data_id = []; 
    scopes.legend_text = ""; 
    scopes.inner_chart_data = []; 

    for (var i = 0; i <= data.length; i++) { 
     var arrayvalue = data[0].data[i]._attr 
     if (existsInArray(scopes.data_id, arrayvalue.label._value) == false) { 
      scopes.data_id.push(arrayvalue.label._value); 
     } 
    } 
     scopes.inner_chart_data = []; 
     var i=1; 
     for (var j = 0; j < data[0].data.length; j++) { 
      scopes.inner_chart_data.push({ label: data[0].data[j]._attr.label._value, y: data[0].data[j]._attr.value._value }); 

     scopes.dataset.push(
        { 
         type: "pie", 

         markerType: "circle", 
         markerSize: scopes.markersize, 
         color: scopes.chart_color_value[i], 
         showInLegend: false, 
         name: scopes.legend_text, 
         dataPoints: scopes.inner_chart_data 
        } 
      ); 
      i++; 
     } 

} 

It is coming like this

+0

你能告訴你如何初始化scopes.chart_color_value嗎? –

+0

@PawełReszka它正在通過示波器。我們可以通過作用域 – shv22

回答

0

似乎要創建2數據系列,而不是1數據系列2倍的數據點。當顏色設置爲數據級別時,整個餅圖變爲單色,所以請嘗試在數據點級別更改它。

以下代碼應該可以正常工作。

for (var j = 0; j < data[0].data.length; j++) { 
    scopes.inner_chart_data.push({ label: data[0].data[j]._attr.label._value, y: data[0].data[j]._attr.value._value, color: scopes.chart_color_value[i], }); 
    i++; 
} 
scopes.dataset.push(
    { 
     type: "pie", 
     markerType: "circle", 
     markerSize: scopes.markersize,      
     showInLegend: false, 
     name: scopes.legend_text, 
     dataPoints: scopes.inner_chart_data 
    } 
); 
+0

來訪問任何聲明的變量......無論如何,我都明白,感謝您的幫助 – shv22