Чтобы получить сплошной цвет, установите minColor
и maxColor
параметры на одно и то же значение. Чтобы установить цвет на основе значения, просто сравните параметры:
var guageValue = 60;
var gaugeOptions = {
...
yAxis: {
minColor: guageValue >= 80 ? '#FF0000' : (guageValue >= 60 ? '#FFFF00' : '#00FF00'),
maxColor: guageValue >= 80 ? '#FF0000' : (guageValue >= 60 ? '#FFFF00' : '#00FF00'),
lineWidth: 0,
....
РЕДАКТИРОВАНИЕ ДЛЯ КОММЕНТАРИЙ
Ну, сделать это динамически в соответствии с API должно быть так же просто, как:
var chart = Highcharts.charts[0];
var point = chart.series[0].points[0];
var color = newGuageValue >= 80 ? '#FF0000' : (newGuageValue >= 60 ? '#FFFF00' : '#00FF00');
chart.yAxis[0].update({minColor:color, maxColor:color});
point.update(newGuageValue);
Но это нарушает диаграмму (и я считаю, что это ошибка в библиотеке).
Итак, лучшее, что я могу придумать, это напрямую обратиться к внутренностям:
var chart = Highcharts.charts[0];
var point = chart.series[0].points[0];
var color = newGuageValue >= 80 ? [255,0,0,1] : (newGuageValue >= 60 ? [255,255,0,1] : [0,255,0,1]);
chart.yAxis[0].stops[0].color.rgba = color;
chart.yAxis[0].stops[1].color.rgba = color;
point.update(newGuageValue);
Вот демонстрация скрипки.
person
Mark
schedule
02.05.2014