Я пытаюсь добавить цвет фона к пробелам в данных, чтобы они были более заметными на больших интервалах, я знаю, что могу сделать это, добавив сюжетные связи с нужным мне цветом, проблема в том, что у меня нет начала и конца разрыва потому что он создается путем определения GapSize и GapUnit (нет дат с нулевыми данными, просто пробел в датах). Я попытался добавить сюжетные связи, рассчитав разницу между датами и сравнив ее с tickInterval, но пока безуспешно,
вот пример гэпов, заданных с помощью gapsize
plotOptions: {
series: {
gapSize: 1
}
}
Есть ли более простой способ сделать это?
спасибо
Highcharts внутренне добавляет нулевые точки для создания пробелов. Вы можете получить рассчитанные нулевые точки и на основе их значений создать графики.
Например:
let plotBands = [];
let allowChartUpdate = true;
(function(H) {
H.wrap(H.seriesTypes.area.prototype, 'getGraphPath', function(proceed, points) {
const xAxis = this.xAxis;
plotBands = [];
points.forEach((p, index) => {
if (p.isNull) {
plotBands.push({
from: points[index - 1] ? points[index-1].x : xAxis.min,
to: points[index + 1] ? points[index+1].x : xAxis.max,
color: 'red'
});
}
});
return proceed.apply(this, Array.prototype.slice.call(arguments, 1));
});
}(Highcharts));
Highcharts.stockChart('container', {
chart: {
type: 'area',
events: {
render: function() {
// prevent infinity loop
if (allowChartUpdate) {
allowChartUpdate = false;
this.xAxis[0].update({plotBands});
allowChartUpdate = true;
}
}
}
},
...
});
Живая демонстрация:https://jsfiddle.net/BlackLabel/jz0n28om/
Ссылка на API:https://api.highcharts.com/highcharts/xAxis.plotBands
Документы:https://www.highcharts.com/docs/extending-highcharts/extending-highcharts
спасибо, ppotaczek, на самом деле это решение с плагином для функции рендеринга. Немного сложно адаптироваться к тому, над чем я работаю, зная, что я хотел реализовать его с помощью .NET-обертки Highcharts, я буду посмотреть, если можно найти решение