使用dojo绘制数千个点

时间:2011-08-11 13:49:31

标签: javascript ajax dojo dojox.charting

我需要使用dojo图表库绘制数千个点,可能接近50,000点。它可以工作,但它肯定非常慢并且滞后于浏览器。有什么方法可以让我获得更好的表现吗?

编辑:

我通过对数据应用渲染过滤器来解决。基本上,我有一个名为“render”的新项目参数,如果预期该点与其他点重叠,则由我的json源设置为false。然后,我的DataSeries将查询render:true的所有点。这样,所有数据仍然存在于需要所有点的非可视源中,而我的图表现在可以顺利运行。

伪码:

def is_overlapped(x, y, x_round, y_round)
    rounded_x = round(x, x_round)
    rounded_y = round(y, y_round)
    hash = hash_xy(rounded_x, rounded_y)

    if(@overlap_filter[hash].nil?)
      @overlap_filter[hash] = true
      return false
    end

    return true
end

x_round和y_round可以由x和y范围确定,例如range / 100

1 个答案:

答案 0 :(得分:1)

我知道这可能不是您正在寻找的答案,但您是否考虑过简单地减少您正在绘制的点数?我不知道图表的具体功能,但我想大多数图表都是不必要的;没有观察者能够在中获得这样的细节。

您的解决方案可能依赖于图形技术而不是JavaScript。例如。您最有可能大大减少点数并使用折线图而不是散点图,同时仍然将相似级别的信息传达给预期目标。