У меня есть временной ряд highchart на моем веб-сайте.
Когда я пытаюсь сгенерировать временной ряд за 1 месяц, я получил правильное значение, как показано ниже (я получил правильное значение ch4 27 февраля, 02.00 как 9.90)
Когда я пытаюсь создать временной ряд за 2 месяца за одно и то же время, он показывает другое значение (я получил среднее значение ch4 в интервале с 27 февраля, 00:00 до 27 февраля, 02:59).
Мне нужно было показать максимальное значение ch4 на 2-х месячном графике, а не среднее.
(Мне нужно было показать 9,90 как значение ch4 в интервале с 27 февраля 00:00 до 27 февраля 02:59)
Как я могу это сделать?
Ниже приведены свойства временного ряда, который я использую:
options = {
legend: { enabled: true },
chart: { renderTo: 'container'/*, type: 'spline'*/ },
tooltip: {
shared: true,
pointFormat: "<span style=\"color:{point.color}\">\u25CF</span> {series.name}: <b>{point.y:.2f}</b><br/>"
// xDateFormat: '%d-%b-%Y %H:%M',
},
xAxis: { type: 'datetime', dateTimeLabelFormats: { day: '%e.%b.%y', hour: '%H:%M', year: '%Y', month: '%b-%Y', } },
yAxis:
[{ // PressureAttributes yAxis --0
title: { text: 'Pressure Attributes (m Bar)', style: {/*color: Highcharts.getOptions().colors[0]*/ } },
labels: {
formatter: function () { return this.value ; },
rotation:-90},
opposite: false,
gridLineWidth: 0,
offset: 120
}, { //CH4,O2,CO2 yAxis --1
title: { text: 'Gas Attribute (%v/v)', style: { /*color: Highcharts.getOptions().colors[0]*/ } },
labels: {
formatter: function () { return this.value ; },
rotation: -90
},
opposite: false,
gridLineWidth: 0,
offset: 40
}, { // Temperature yAxis --3
title: { text: 'Temperature ( °C )', style: {/*color: Highcharts.getOptions().colors[0]*/ } },
labels: {
formatter: function () { return this.value ; },
rotation: -270
},
opposite: true,
gridLineWidth: 0,
offset: 40
}, { // PPM yAxis --4
title: { text: 'Gas Attribute (PPM)', style: {/*color: Highcharts.getOptions().colors[0]*/ } },
labels: {
formatter: function () { return this.value ; },
rotation: -270
},
opposite: true,
gridLineWidth: 0,
offset: 120
}]
,
navigator: { enabled: true, adaptToUpdatedData: false },
title: { text: 'Reading Time Series' },
scrollbar: { liveRedraw: false },
rangeSelector:{inputEnabled: false},
series: [
{ name: 'VOC', data: [], yAxis: 3 },
{ name: 'H2S', data: [], yAxis: 3 },
{ name: 'CO', data: [], yAxis: 3 },
{ name: 'O2', data: [], yAxis: 1 },
{ name: 'CH4', data: [], yAxis: 1 },
{ name: 'CO2', data: [], yAxis: 1 },
{ name: 'BH Pressure', data: [], yAxis: 0 },
{ name: 'ATM Pressure', data: [], yAxis: 0 },
{ name: 'Temperature', data: [], yAxis: 2 },
{ name: 'Battery', data: [], yAxis: 3 }
]
};
Нужно ли мне устанавливать какое-либо специальное свойство для достижения моей цели?
Это вызвано dataGrouping
. В Highcharts API мы можем прочитать:
plotOptions.line.dataGrouping
Data grouping is the concept of sampling the data values into larger blocks in order to ease readability and increase performance of the JavaScript charts. Highstock by default applies data grouping when the points become closer than a certain pixel value, determined by the groupPixelWidth option.
Вы можете отключить dataGrouping
следующим образом:
plotOptions: {
series: {
dataGrouping: {
enabled: false
}
}
},
Справочник по API: https://api.highcharts.com/highstock/plotOptions.line.dataGrouping