Невозможно отобразить данные оси X каждой точки на старшей диаграмме - PullRequest
0 голосов
/ 05 июля 2018
$scope.mData = $firebaseArray(aRef.orderByChild('ts').startAt('2018-07-02').limitToLast(31));
        $scope.mData.$loaded().then(function () {
            $scope.chartSeriesYArray03 = [];
            $scope.chartSeriesXArray03 = [];

            $scope.chartSeries = [];

            angular.forEach($scope.mData, function (value) {
                $scope.chartSeriesXArray03.push(moment(value.ts).format('MMMM Do YYYY, h:mm:ss'));
                $scope.chartSeriesYArray03.push(parseFloat(value.ein));
                $scope.chartSeries.push([
                    Date.parse(value.ts), parseFloat(value.ein)
                    //moment(value.ts).format('MMMM Do YYYY, h:mm:ss'), parseFloat(value.ein)
                ]);
            });

            Highcharts.setOptions({
                global: {
                    useUTC: false
                }
            });

            var chart003 = Highcharts.chart('chart03', {
                chart: {
                    type: 'column'
                },
                title: {
                    text: 'Half Hourly Energy Consumption'
                },
                yAxis: {
                    min: 0,
                    title: {
                        text: 'Energy (kwh)'
                    }
                },
                series: [{
                    name: 'Meter01',
                    data: $scope.chartSeries,
                    crosshair: true
                }]
            });

            $scope.mData.$watch(function (cb) {
                if(cb.event == 'child_added') {
                    angular.forEach($scope.mData, function (value) {
                        if(value.$id === cb.key) {
                            chart003.series[0].addPoint([
                                Date.parse(value.ts),
                                //moment(value.ts).format('MMMM Do YYYY, h:mm:ss'),
                                parseFloat(value.ein)
                            ], true, true);
                            console.log('test7', moment(value.ts).format('MMMM Do YYYY, h:mm:ss'), parseFloat(value.ein));
                        }
                    });
                }
            });
        });

На рисунке показано, как получается график

enter image description here

Итак, чего я хотел добиться, так это отображать динамические данные из базы данных с использованием высоких графиков. Мне удалось протолкнуть текущие данные, но я столкнулся с ошибкой отсутствия значений по оси X, которые я также вставил в код. Я следовал этому Как сообщить Highcharts, чтобы установить дату на оси X, и использовать диапазон времени (например, 1 день) и мне удалось отобразить дату в миллисекундах. Однако теперь я не могу поместить значение ниже каждого гистограммы, и дата появляется только с интервалами, как показано на рисунке. Как я могу идти о 1) размещение всех дат каждой панели данных прямо под панелью 2) убедитесь, что гистограмма расположена равномерно, несмотря на неравномерность времени публикации 3) преобразовать дату в формат ДД ММ ГГГГ после ее передачи через Date.parse ()

Спасибо! Любая помощь приветствуется:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...