2016-03-01 2 views
1

Мне нужно создать GeoChart из региона США. в настоящее время цвет, назначенный для каждой страны, зависит от colorAxis.color в градиенте. есть ли способ указать цвет для каждой страны на основе заданного диапазона значений. Например: значение от 0 до 20 для красного цвета значение между 21-40 для желтого цвета и son on? любая помощь в этом вопросе приветствуется. Спасибо.Как назначить цвет каждой стране на основе заданного набора значений

ответ

0

, кажется, градиент может быть отменено, если имя цвета поставляется для каждого значения, используя ...

colorAxis: { 
    colors: colorNames, // array of color names -- one for each value 
    values: colorValues // array of values extracted from the data and sorted ascending 
    }, 

здесь, я настроить диапазон, чтобы совпасть с данными из примера GeoChart .. .
red <= -10 > yellow <= 10 > green

google.charts.load('44', {'packages':['geochart']}); 
 
google.charts.setOnLoadCallback(drawRegionsMap); 
 

 
function drawRegionsMap() { 
 
    var dataRows = [ 
 
    ['Country', 'Latitude'], 
 
    ['Algeria', 36], ['Angola', -8], ['Benin', 6], ['Botswana', -24], 
 
    ['Burkina Faso', 12], ['Burundi', -3], ['Cameroon', 3], 
 
    ['Canary Islands', 28], ['Cape Verde', 15], 
 
    ['Central African Republic', 4], ['Ceuta', 35], ['Chad', 12], 
 
    ['Comoros', -12], ['Cote d\'Ivoire', 6], 
 
    ['Democratic Republic of the Congo', -3], ['Djibouti', 12], 
 
    ['Egypt', 26], ['Equatorial Guinea', 3], ['Eritrea', 15], 
 
    ['Ethiopia', 9], ['Gabon', 0], ['Gambia', 13], ['Ghana', 5], 
 
    ['Guinea', 10], ['Guinea-Bissau', 12], ['Kenya', -1], 
 
    ['Lesotho', -29], ['Liberia', 6], ['Libya', 32], ['Madagascar', 13], 
 
    ['Madeira', 33], ['Malawi', -14], ['Mali', 12], ['Mauritania', 18], 
 
    ['Mauritius', -20], ['Mayotte', -13], ['Melilla', 35], 
 
    ['Morocco', 32], ['Mozambique', -25], ['Namibia', -22], 
 
    ['Niger', 14], ['Nigeria', 8], ['Republic of the Congo', -1], 
 
    ['Réunion', -21], ['Rwanda', -2], ['Saint Helena', -16], 
 
    ['São Tomé and Principe', 0], ['Senegal', 15], 
 
    ['Seychelles', -5], ['Sierra Leone', 8], ['Somalia', 2], 
 
    ['Sudan', 15], ['South Africa', -30], ['South Sudan', 5], 
 
    ['Swaziland', -26], ['Tanzania', -6], ['Togo', 6], ['Tunisia', 34], 
 
    ['Uganda', 1], ['Western Sahara', 25], ['Zambia', -15], 
 
    ['Zimbabwe', -18] 
 
    ]; 
 

 
    // extract column index 1 for color values 
 
    var colorValues = dataRows.map(function(val){ 
 
     return val.slice(-1); 
 
    }); 
 
    // remove column label 
 
    colorValues.splice(0, 1); 
 
    // sort ascending 
 
    colorValues.sort(function(a, b){return a-b}); 
 

 
    // build color names red <= -10 > yellow <= 10 > green 
 
    var colorNames = []; 
 
    colorValues.forEach(function(value) { 
 
    if (value <= -10) { 
 
     colorNames.push('red'); 
 
    } else if ((value > -10) && (value <= 10)) { 
 
     colorNames.push('yellow'); 
 
    } else { 
 
     colorNames.push('green'); 
 
    } 
 
    }); 
 

 
    var data = google.visualization.arrayToDataTable(dataRows); 
 

 
    var options = { 
 
    region: '002', 
 
    colorAxis: { 
 
     colors: colorNames, 
 
     values: colorValues 
 
    }, 
 
    backgroundColor: '#81d4fa', 
 
    datalessRegionColor: '#f8bbd0', 
 
    defaultColor: '#f5f5f5', 
 
    }; 
 

 
    var chart = new google.visualization.GeoChart(document.getElementById('geochart-colors')); 
 
    chart.draw(data, options); 
 
};
<script src="https://www.gstatic.com/charts/loader.js"></script> 
 
<script src="https://www.google.com/jsapi"></script> 
 
<div id="geochart-colors" style="width: 700px; height: 433px;"></div>

+0

вы были правы о прохождении переменного тока olor для каждого значения. Я решил это, добавив дополнительный параметр, который определяет его цвет и добавляет его в colorAxis.values. Большое спасибо за помощь. –

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