7

如果有人可以帮助我解决这个问题,我真的很感激。我们正在使用 Jqplot 绘制一些统计数据,并且喜欢缩放功能。

具体来说,我们想使用示例

http://www.jqplot.com/deploy/dist/examples/zoom1.html

http://www.jqplot.com/deploy/dist/examples/zoomOptions.html

我们需要做的一件事是重新计算我们在页面上显示的一些值,例如放大后图表中可见点的标准偏差、平均值等。为此,我们需要获取那里的数据点列表(仍然)在我们放大后的图表上。所以理想情况下,我们正在研究一种方法,它返回我放大后在图表中可见的当前数据集。

我查阅了 API 文档,但似乎没有这样的方法可用。因此,如果有人能帮助我解决这个问题,我将不胜感激。

谢谢....阿米特

4

1 回答 1

6

好的,所以在大量挖掘代码之后,实际上并没有任何简单的方法来获取这些数据,但是,有一种方法。

在下面的解决方案中,我有一个zoomChart jqPLot obj,它充当我的主 jqPLot 的缩放代理,称为chart。据推测,如果您没有代理,只要您绑定到正确的对象,它应该也可以正常工作。

我正在做的是将自定义函数绑定到“jqplotZoom”事件,该事件在缩放操作完成后调用。

    zoomChart.target.bind('jqplotZoom', function(ev, gridpos, datapos, plot, cursor){
        var plotData =  plot.series[0].data;
        for (var i=0; i< plotData.length; i++) {
            if(plotData[i][0] >= chart.axes.xaxis.min && plotData[i][0] <= chart.axes.xaxis.max ) {
                //this dataset from the original is within the zoomed region
                //You can save these datapoints in a new array
                //This new array will contain your zoom dataset
                //for ex: zoomDataset.push(plotData[i]);
            }
        }
    });

这有意义吗?本质上,chart.axes.xaxis包含缩放区域的边界,并且plot.series[N].data是图表格式中的所有原始数据。

请注意,我使用的chart是因为我最初创建var chart = $.jqplot("chartDiv", ...

您应该使用您为绘图提供的任何变量名称。希望这可以帮助!

于 2013-05-24T16:30:02.483 回答