2013-02-13 4 views
2

Некоторое время я играю с раскраской моей круговой диаграммы ... И либо я получил свои пользовательские цвета без градиента, либо цвета по умолчанию с градиентом ... Мои цвета хранятся в php, которое я хочу загрузить как colors: <?echo $myColors;?>. Фактическое состояние моего кода, как это (он показывает цвета по умолчанию с градиентом):HighCharts: Как совместить пользовательские цвета с градиентом

colors: Highcharts.map(Highcharts.getOptions().colors, function(color) { 
    return { 
     radialGradient: { cx: 0.5, cy: 0.3, r: 0.7 }, 
     stops: [ 
       [0, color], 
       [1, Highcharts.Color(color).brighten(-0.3).get('rgb')] // darken 
     ] 
    }; 
}) 

Как мне отредактировать его, чтобы он показывал свои собственные цвета простым способом? Кроме того, я didn't найти то, что это «останавливает» вариант для ...

ответ

7

Используйте цвета в map вместо Highcharts встроенных в них:

colors: Highcharts.map(<?echo $myColors;?>, function(color) { 
    return { 
     radialGradient: { cx: 0.5, cy: 0.3, r: 0.7 }, 
     stops: [ 
       [0, color], 
       [1, Highcharts.Color(color).brighten(-0.3).get('rgb')] // darken 
     ] 
    }; 
}) 
+0

просто и красиво :) Спасибо! –

+0

Один маленький недостаток .... Когда я нажимаю на какой-нибудь кусочек, цвет первых 3 ломтиков внезапно меняется на значение по умолчанию ... Я пытался воспроизвести это в jsFiddle, но там он работает правильно ... У вас есть идея, что может быть причиной этого? Мой массив выглядит так: $ myColors = array ('# 199ED5', '# 77CC6D', '# F136AD', '# FF954E', '# FFCC00', '# 00FFFF', '# FF0000', '# 66FF00' '# 660099'); –

+0

РЕШЕННЫЙ! Количество измененных цветов фактически равно числу срезов (цветов), отображаемых вторым графиком (на данный момент установленным по умолчанию) ... Поэтому я думаю, что после того, как я установил свою собственную цветную тему на второй график, эта проблема . пропадает –

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