2014-10-07 3 views
2

Я пытаюсь назначить цвет на основе значения, но это не работает, он просто присваивает значения по умолчанию. Эти методы работают с другими типами диаграмм. Имейте в виду, что я не могу использовать цвет в параметрах, потому что строки могут прийти в другом порядке. Есть идеи?Google Visualization, можете ли вы назначить цвет среза на основе значения столбца?

var data = new google.visualization.DataTable();   
    data.addColumn('string', 'Status'); 
    data.addColumn('number', 'Count'); 
    data.addColumn({type: 'string', role: 'style'}); 
    data.addRow(['Failure', 8,'color:#EE4A49']); 
    data.addRow(['Warning', 1,'color:#E3d157']); 
    data.addRow(['Success', 1,'color:#45B7AF']); 

http://jsfiddle.net/zYS27/15/

ответ

2

На основе on the current API я думаю, вам может понадобиться для предварительной обработки данных перед передачей его в Google Charts.

var data = new google.visualization.DataTable();   
    data.addColumn('string', 'Status'); 
    data.addColumn('number', 'Count'); 
    data.addColumn({type: 'string', role: 'style'}); 
    data.addRow(['Failure', 8,'color:#EE4A49']); 
    data.addRow(['Warning', 1,'color:#E3d157']); 
    data.addRow(['Success', 1,'color:#45B7AF']); 

var myColors = { 'Failure' : 'red', 'Success': 'green', 'Warning': 'yellow' }; 

var slicesColor = {}; 

for(var i=0; i < data.getNumberOfRows(); i++){ 
    // I assume the label is in the first column of each row here 
    // this is based on string matching, but you can define any criteria you want 
    slicesColor[i] = {color: myColors[data.getValue(i, 0)] }; 
} 

var options = { 
    ... 
    slices: slicesColor 
} 

var chart = new google.visualization.PieChart(document.getElementById('chart')); 
    chart.draw(data, option); 
} 
... 
+1

так, мораль истории - вы не можете использовать стиль в addColumn для пирогов? – davimusprime

Смежные вопросы