2

事先信息:(如果您想知道我来自哪里)

第一个问题:如何将每 n 秒的 JS 变量设置为 JSON 数组。

感谢帮助让一切顺利:)

然后我开始限制数组中的总量,尝试将其设置为 10,但每次它都会停在 7.. 在这里的帮助下,它工作得很好。

第二个问题:如何将原生 JSON 数组限制为 10 个位置。

再次完美运行..


问题:

现在我被困在一个阶段,我将我的 JSON 数组格式设置为我想要的确切上下文。例如:[["0", "7"], ["0", "7"], ["0", "7"]] 我的目标是将其绘制成Jquery Flot Graph。现在,如果我手动设置一个变量:

var PlotData= [["0", "7"], ["0", "7"], ["0", "7"]]

Jquery Flot完美地绘制此图,但作为从 null 开始的递增值,它将添加一个空白图,然后永远不会刷新它。我的代码如下:

var numbers = [];
var jsonString = "";
var PlotData;

function EveryOneSec() {
  if (numbers.length == 10) {
      numbers.shift();
  }
  numbers.push(['0", "' Math.random()]);
  jsonString = JSON.stringify({'numbers': numbers});
  PlotData = numbers; //set to numbers for now rather than the JSON just for testing.
  $.plot($("#PlaceHolder"), [{ data: PlotData, points: { show: true}}]);
  setTimeout(EveryOneSec, 1000);
}

现在该函数每秒运行一次。但不会更新情节。有谁知道我缺少什么或者我必须做什么才能动态更新 Jquery Flot Graph

4

2 回答 2

3

像 Reigel 建议的那样创建一个新的情节并不是要走的路——它可能是在 2010 年写的。

如今,您应该使用setData()redraw()并且可能使用setupGrid().

var oldData = [[0,0],[1,1]],
    newData = [[1,1],[2,2]],
    graph = $.plot($("#plot"), oldData, options);

graph.setData(newData);  // Replace oldData with newData
graph.setupGrid();       // Adjust axes to match new values
graph.draw();            // Update actual plot
于 2013-04-05T15:17:16.303 回答
0

尝试这样的事情......

$.plot($("#PlaceHolder"), PlotData, {points: { show: true}});

我也认为,你在这里得到了不成对的报价

numbers.push(['0", "' Math.random()]); // typo? should it be like ["0", Math.random()]
于 2010-07-05T05:33:49.513 回答