【问题标题】:Get list of data points in the canvas after zoom jqplot缩放 jqplot 后获取画布中的数据点列表
【发布时间】:2013-05-24 09:59:14
【问题描述】:

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

具体我们要使用

中的例子

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

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

我们需要做的一件事是重新计算我们在页面上显示的一些值,例如放大后图表中可见点的标准偏差、平均值等。 为此,我们需要在放大后获取图表上存在(保留)的数据点列表。因此,理想情况下,我们正在查看一个返回 放大后在图表中可见的当前数据集。

我查阅了 API 文档,但似乎没有这样的方法可用。因此,如果有人帮助我,我将不胜感激 我应该继续这样做。

谢谢....阿米特

【问题讨论】:

  • 出于另一个原因,我也在尝试获取相同的数据,但我没有看到任何简单的方法来做到这一点。如果我发现任何东西,我会更新答案
  • 感谢@JavaDrinker。在同一条船上:-)

标签: javascript jquery graph jqplot


【解决方案1】:

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

在下面的解决方案中,我有一个 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", ...

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

【讨论】:

  • 我可以确认它可以在没有代理的情况下工作。即使图表是从PrimeFaces 生成的
猜你喜欢
  • 2016-12-13
  • 2011-10-14
  • 1970-01-01
  • 2014-03-10
  • 2021-04-22
  • 2016-08-26
  • 2018-02-01
  • 1970-01-01
  • 2019-08-18
相关资源
最近更新 更多