Это моя модель данных:Highcharts - применить градиент на пользовательских цветах
data = [{y: 123, color: "#FF7600"}, {y: 321, color: "#00FFE3"}, {y: 213,color: "#444444"}]
Тогда ряд добавляется в виде круговой диаграммы:
$http({ method: 'GET', url: /pie-chart, params: {})
.success(function (data) {
chart.addSeries({
type: 'pie',
data: data
})
});
Вот официальное Highcharts демо: http://www.highcharts.com/demo/pie-gradient
It перебирает данные, читает цвета, создает массив цветов и использует этот массив при рисовании диаграммы.
Но я думаю о решении, которое позволяет избежать извлечения цветов из JSON.
Любая идея? Большое спасибо.
отредактировано, решено
Давал его :).
Я закончил создание цветных массивов, как описано в демо-версии.
Он хорошо работает.
// Get colors from received data, create color array,
var colors = [];
for (var i = 0; i < data[0].series.length; i++) {
colors.push(data[0].series[i].color);
// Delete original colors, so that new radialized are used
delete(data[i].color);
}
// Use color array and radialize each color
Highcharts.getOptions().colors = Highcharts.map(colors, function(color) {
return {
linearGradient: { x1: 0, y1: 0, x2: 1, y2: 0 },
stops: [
[0, color],
[1, Highcharts.Color(color).brighten(-0.3).get('rgb')] // darken
]
};
});
«Данные» на самом деле множественное число. Правильное использование - это «данные», а не «данные», один фрагмент данных - это «привязка». Хотя мы никогда не используем его таким образом. – bcr
Улучшено :) Thx. – Jara
@Jara так проблема решена? –