在jqplot折线图中动态传递系列

时间:2012-12-20 07:14:58

标签: javascript jquery jqplot

我使用过jqplot折线图。 我使用ajax从php页面获取数据。在某些情况下,我将显示特定的series.So

如何在jqplot折线图中动态传递系列并设置系列图例?

我已手动编写上述要求的代码。我已在图例系列上应用点击事件,并按照图例点击绘制图形。

我还根据选择/取消选择系列图例更改了y轴值。

3 个答案:

答案 0 :(得分:1)

我最初尝试过@sdespont发布的答案,但是由于系列需要额外的属性,它无法正常工作。通过执行以下操作,我能够实现这一目标:

plot1.data = data;
plot1.replot( data );

数据是与创建绘图时传递的化妆相同的3D数组。如果我做任何一部分没有做另一部分,它将无法正常刷新,但两者的组合似乎可以解决问题。以这种方式刷新绘图将动态添加或删除我添加到数据数组中的任何系列。

希望有所帮助。

答案 1 :(得分:0)

您可以通过使用plot1.series数组来添加或删除系列。

这是一个很好的jsfiddle:jsfiddle.net/fracu/HrZcj

想法是创建一个包含数据的数组

    myNewSerie = Array();
    x = (new Date()).getTime();
    y = Math.floor(Math.random() * 100);
    myNewSerie.push([x, y]);

然后使用下一个可用的插槽

将其添加到图表中

plot1.series[plot1.series.length] = myNewSerie

最后使用plot1.replot();

重绘

查看小提琴末尾的updateSeries功能

未经测试,但应该有效

答案 2 :(得分:0)

我最近遇到了同样的问题。 “replot”有效,但速度很慢。我使用了“jQPlot.drawSeries”,它非常快。只需像往常一样将新的系列数据提供给jQPlot,然后调用jQPlot.drawSeries({}, <nr of your series from 0...xxx)

我的带有800个值的实时图表使用&gt;&gt;运行我的电脑上有60 FPS,手机也很快。