Вопрос по – jqPlot: как жить обновлять график

14

Я не могу самостоятельно разобраться или найти подходящий пример того, как выполнять живые обновления в jqPlot аналогично тому, как показано в этом высоком графике.пример.

stackoverflow.com/a/19471949 - отличный ответ с тестом :) Jacob Sobus
Я опубликовал пример на jsFiddle в своем оригинальном сообщении. doberkofler
+1 Мне нравится то, что вы пытаетесь достичь. У вас уже есть код? Не могли бы вы поделиться этим наjsfiddle.net? Boro
Да, я заметил пример. Хотя в моем предыдущем комментарии я имел в виду код, который вы написали дляjqPlot так что мы можем начать работать с того, что вы сделали сjqPlot. Boro

Ваш Ответ

3   ответа
21

этотЯ подготовил следующий пример:

$(document).ready(function() {
    var plot1 = $.jqplot('chart1', [new Array(1)], {
        title: 'Live Random Data',
        series: [
            {
            yaxis: 'y2axis',
            label: '',
            showMarker: false,
            fill: false,
            neighborThreshold: 3,
            lineWidth: 2.2,
            color: '#0571B6',
            fillAndStroke: true}
        ],
        axes: {
            xaxis: {
                renderer: $.jqplot.DateAxisRenderer,
                tickOptions: {
                    formatString: '%H:%M:%S'
                },
                numberTicks: 10
            },
            y2axis: {
                min: 100,
                max: 150,
                tickOptions: {
                    formatString: '%.2f'
                },
                numberTicks: 15
            }
        },
        cursor: {
            zoom: false,
            showTooltip: false,
            show: false
        },
        highlighter: {
            useAxesFormatters: false,
            showMarker: false,
            show: false
        },
        grid: {
            gridLineColor: '#333333',
            background: 'transparent',
            borderWidth: 3
        }
    });

    var myData = [];
    var x = (new Date()).getTime() - 101000;
    var y;
    var i;
    for ( i = 0; i < 100; i++) {
        x += 1000;
        y = Math.floor(Math.random() * 100);
        myData.push([x, y]);
    }

    plot1.series[0].data = myData;
    plot1.resetAxesScale();
    plot1.axes.xaxis.numberTicks = 10;
    plot1.axes.y2axis.numberTicks = 15;
    plot1.replot();

    function updateSeries() {
        myData.splice(0, 1);
        x = (new Date()).getTime();
        y = Math.floor(Math.random() * 100);
        myData.push([x, y]);

        plot1.series[0].data = myData;
        plot1.resetAxesScale();
        plot1.axes.xaxis.numberTicks = 10;
        plot1.axes.y2axis.numberTicks = 15;
        plot1.replot();
    }

    window.setInterval(updateSeries, 1000);
});

Посмотрите это jsfiddle, чтобы проверить это.

Не работает для меня
это больше не работает.
@ uesports135 Я только что попробовал, и это работает, не могли бы вы попробовать еще раз, пожалуйста?
7

jsfiddle.net/meccanismocomplesso/QAr4r/ который воспроизводит пример, который вы связали.

Я пытался сделать эту тему как можно более общей. Если вам нужно больше объяснений читатьЭта статья об этом.

var plot1 = $.jqplot('myChart', [data], options);
...
plot1.series[0].data = data; // update the graph
3
var plot1;

function updatePlot(data){
plot1 = $.jqplot('myChart', [data], options);
}


function reDrawPlot(data){`
updatePlot(data);
plot1.replot();
}

....
initialize plot
plot1 = $.jqplot('myChart', [data], options);
....


call function reDrawPlot with the new data as a parameter

Похожие вопросы