我使用过jqplot线图。我通过ajax从php页面获取数据。在某些情况下,我将显示特定系列。
如何在jqplot线图中动态传递系列并设置系列的图例?
我手动编写了上述要求的代码。我在图例系列上应用了点击事件,并根据点击的图例绘制图形。
我还根据选择/取消选择系列图例更改了y轴值。
如何在jqplot线图中动态传递系列并设置系列的图例?
我手动编写了上述要求的代码。我在图例系列上应用了点击事件,并根据点击的图例绘制图形。
我还根据选择/取消选择系列图例更改了y轴值。
我最初尝试了@sdespont发布的答案,但由于系列需要额外的属性才能正常工作,它并没有正常工作。我通过以下方式使其正常工作:
plot1.data = data;
plot1.replot( data );
data是一个3D数组,其组成方式与创建图表时传递的方式相同。如果我只做其中一部分而不做另一部分,它就不能正确地刷新,但两者的组合似乎能解决问题。以这种方式刷新图表将动态添加或删除我添加到数据数组中的任何系列。
希望这有所帮助。
plot1.series
数组来添加或删除系列。 myNewSerie = Array();
x = (new Date()).getTime();
y = Math.floor(Math.random() * 100);
myNewSerie.push([x, y]);
然后使用下一个可用的插槽将其添加到图表中
plot1.series[plot1.series.length] = myNewSerie
最后使用 plot1.replot();
重新绘制
在 Fiddle 的结尾处查看 updateSeries
函数
没有测试,但应该可以工作
我最近也遇到了同样的问题。 "replot" 可以解决问题,但速度非常慢。我使用了 "jQPlot.drawSeries",它非常快。只需像往常一样将新系列数据提供给 jQPlot,并调用 jQPlot.drawSeries({}, <nr of your series from 0...xxx)
我的实时图表有800个值,在我的电脑上运行速度超过60 FPS,在我的手机上也非常快。