Обновление диаграммы Санки через Socket.IO - PullRequest
1 голос
/ 03 июня 2019

Я хочу обновить свои сущности диаграммы sankey по мере поступления новых через сокет socket.io. Данные, отправляемые сокетом, - это [отправитель, получатель, сумма], поэтому у меня есть все параметры, которые нужны санки, использующим Highcharts. Я уверен в поступающих данных.

Я добавил функцию для этого, но она ничего не генерирует.

<script>
    var render = Highcharts.chart('container', {
            title: {
                text: 'Real Time Chart'
            },

            chart: {
                type: 'sankey',
                renderTo: 'container',
                events: {
                    load: function() {
                        var socket = io.connect();
                        var series = this.series;
                        socket.on('message', function(data){
                            console.log(data);
                            series.addPoint([data.sender, data.receiver, data.amount], true, true);
                        });
                    }
                }
            },

            series: [{
                type: 'sankey',
                name: 'Initial data',
                keys: ['sender','receiver','amount'],
                data: (function() {
                    // generate some points to render before real samples arrive from feed
                    var data = []   
                    data.push({
                        sender: 'Brazil',
                        receiver: 'Portugal',
                        amount: 50
                    });
            return data;
        })()
    }]
});

    </script>

Я надеюсь обновить диаграмму динамически.

1 Ответ

0 голосов
/ 03 июня 2019

Нельзя использовать свойство keys для объектов. Вам необходимо использовать формат, необходимый для серии Highcharts:

series: [{
    ...,
    data: (function() {
        // generate some points to render before real samples arrive from feed
        var data = []
        data.push({
            from: 'Brazil',
            to: 'Portugal',
            weight: 50
        });
        return data;
    })()
}]

Демо: http://jsfiddle.net/BlackLabel/jrgas7Lm/

Справочник по API:

https://api.highcharts.com/highcharts/series.sankey.data

https://api.highcharts.com/highcharts/series.sankey.keys

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