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