首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用工具提示在丰富散点图上绘制75000个点

使用工具提示在丰富散点图上绘制75000个点
EN

Stack Overflow用户
提问于 2014-09-04 20:46:38
回答 1查看 402关注 0票数 0

我可以在这里发布一些代码,但问题的标题正是问题所在。

我的chart.destroy()需要很长时间才能拿到75000分。每个点也有一个工具提示(使用的工具提示是Highcharts自己的工具提示)

此外,使用new Highcharts.Chart({ ...options...})绘制新图表也需要花费大量时间。

有没有人用Highcharts处理过这么多数据点?如果是,您是如何使其顺利运行的?4-5秒的延迟是可以的,但是我在渲染图表时得到了30秒的延迟。时间轴中的GC事件也显示了大量数据被垃圾收集。我感觉我没有一个解决方案,但我正在拼命寻找任何线索。

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2014-09-06 05:48:35

性能瓶颈在于需要在内存中表示数据集中每个点的数据量。由于您需要工具提示,因此每个点都必须将其值作为字符串存储在内存中;因此,内存中至少需要75,000个对象,这还不包括highcharts本身的成本。highcharts可以在显著较短的时间内显示75k散点图(没有工具提示)的原因是,它对输出进行采样并显示估计值,而不需要任何点的交互性。

http://jsfiddle.net/5haL91vf/1/

出于演示目的,我使用了一个名为ZingChart的库,并使用呈现类型作为画布来提高大型数据集的性能。启用工具提示后,我可以在我的计算机上渲染75k,速度不超过15s (显然依赖于计算机)。但是,正如您所看到的,当可视化密度超过像素密度时,散点图没有实际价值。

具有计时功能的简单设置:

代码语言:javascript
复制
 startTime = Date.now();
 zingchart.render({
    id:'zc',
    width: 1000,
    height: 700,
    output: "canvas",
    data:myChart
});

zingchart.bind('zc', 'complete', function(){
    alert((Date.now() - startTime)/1000 + " seconds");
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25665935

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档