Установите ноль для отсутствующих данных в старших чартах

1

Как установить нуль для отсутствующих данных в highcharts, здесь я получаю значения в течение 3 дней, между днями данных нет. Поэтому для тех дней мне нужно установить нуль

seriesData = [{
    "name": "Questions",
    "data": [
      [1503273600000,1],
      [1504656000000,1],
      [1504742400000,1]
    ]
  }]

Jsfiddle

Спасибо...

  • 0
    Глядя на приведенный вами пример, какие данные отсутствуют?
  • 0
    @MattNewelski только я получаю значения за 3 дня, между днями данных нет. Поэтому для тех дней мне нужно установить ноль
Показать ещё 2 комментария
Теги:
highcharts

1 ответ

1
Лучший ответ

Вы можете сделать это так

var data = [[1.5032736E12,1.0],[1.504656E12,1.0],[1.5047424E12,1.0]];
        var startDay = data[0][0],
            endDay = data[data.length-1][0]
            isLastDay = startDay == endDay,
            dayTick = 1000 * 60 * 60 * 24,
            temp = [];

        //Create new array with 0 values for each day
        temp.push([startDay, 0])
        while(!isLastDay) {
            startDay += dayTick;
            temp.push([startDay, 0])

            isLastDay = startDay >= endDay;
        }

        //Override all values with existing days
        for (var i = 0; i < data.length; i++)
        for(var j = 0; j < temp.length; j++) {
            if (temp[j][0] == data[i][0]) {
                temp[j][1] = data[i][1];
                break;
            }
        }

    data = temp;

Highcharts.chart('container', {
chart: {
            type: 'line'
        },
   title: {
            text: 'Survey'
        },
        yAxis: {
            title: {
                text: 'Responses'
            }
        },
        xAxis: [{
            type: "datetime",
            title: {
                text: null
            },
            dateTimeLabelFormats: {
                month: "%e.%b<br/>%a"
            }
        }],
           plotOptions: {
            series: {
                marker: {
                    enabled: false
                }
            },
            series: {
                connectNulls: true
            }
        },

    series:[{"name":"Questions","data":data}]

});

Таким образом, вы создадите новый массив temp, который будет иметь все дни между первым и последним днем с 0 значениями, после чего вы просто поместите существующие значения в массив temp.

Вот обновленный jsfiddle

  • 0
    Огромное спасибо...

Ещё вопросы

Сообщество Overcoder
Наверх
Меню