缩放jqplot后获取canvas中的数据点列表
如果有人可以帮我解决这个问题,我真的很感激。 我们使用Jqplot绘制一些统计数据,并像缩放function一样。
具体来说,我们想要使用示例
http://www.jqplot.com/deploy/dist/examples/zoom1.html和
http://www.jqplot.com/deploy/dist/examples/zoomOptions.html
我们需要做的一件事是重新计算我们在页面上显示的一些值,如标准偏差,平均值等,放大后图中可见的点。为此,我们需要获取那里的数据点列表(我们放大后在图表上保留。所以理想情况下我们正在查看一种方法,该方法在放大后返回图表中可见的当前数据集。
我查找了API文档,但似乎没有这样的方法可用。 所以如果有人帮我解决这个问题,我真的很感激。
谢谢….阿米特
好吧,经过大量的代码挖掘后,实际上没有任何简单的方法来获取这些数据,但是,有一种方法。
在下面的解决方案中,我有一个zoomChart jqPLot obj,它充当我的主jqPLot的缩放代理,称为图表 。 据推测,如果你没有代理,只要你绑定到正确的对象,这应该也可以。
我正在做的是将自定义函数绑定到’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", ...
您应该使用您给出的任何变量名称。 希望这可以帮助!