Graph 简单flot图不更新

Graph 简单flot图不更新,graph,flot,Graph,Flot,我试图创建一个简单的flot线图,并在计时器上更新它,我只想显示最后10个点的数据。但我只看到轴,没有看到图形。此外,我看到x轴随着额外数据的变化而变化,但y轴保持不变,与额外数据不对应。我的代码如下: var dataSet = []; var PlotData; var x = 0; var y = 0; var plot = null; function EveryOneSec() { if (dataSet.length == 10) { dataSet

我试图创建一个简单的flot线图,并在计时器上更新它,我只想显示最后10个点的数据。但我只看到轴,没有看到图形。此外,我看到x轴随着额外数据的变化而变化,但y轴保持不变,与额外数据不对应。我的代码如下:

var dataSet = [];
var PlotData;
var x = 0;
var y = 0;
var plot = null;

function EveryOneSec()
{
    if (dataSet.length == 10)
    {
        dataSet.shift();
    }
    x++;
    y += 2;
    dataSet("[" + x + ", " + y + "]");

    PlotData = { label: "line 1", data: [ dataSet ], color: "green" };

    if (plot == null)
    {
        plot = $.plot($("#placeholder"), [ PlotData ], { lines: {show: true}, points:          {show: true}});
    }
    else
    {
        plot.setData([ PlotData ]);
        plot.setupGrid();
        plot.draw();
    }
    setTimeout(EveryOneSec, 1000);
}

我尝试过调用和不调用setupGrid(),但这对轴显示或图形打印没有影响。当我绘制记号0到9时,x轴停止变化,即使x的增量超过该值,y轴保持静态。我相信上面的代码在传递数据数组方面是正确的,那么为什么图形没有出现呢?

好的,这里有两个问题

首先,您没有正确地附加到
数据集。我不确定你的语法在做什么,但是你在数组的每个插槽中需要的是
[x,y]
,这可以通过
数组来实现

这:

应该是这样的:

dataSet.push([x , y]);
创建序列对象
PlotData
时,不需要将数据存储在另一个数组中,因此:

PlotData = { label: "line 1", data: [ dataSet ], color: "green" };
你需要这个:

PlotData = { label: "line 1", data:  dataSet , color: "green" };
看到它在这里工作:

PlotData = { label: "line 1", data:  dataSet , color: "green" };