正在寻找一个javascript图表库,它可以在散点图上绘制约200000个点

正在寻找一个javascript图表库,它可以在散点图上绘制约200000个点,javascript,charts,jfreechart,Javascript,Charts,Jfreechart,我正在构建一个web应用程序,该应用程序的界面包含一个大的散点图,以向用户提供其数据的概览。散点图大约有200000个点。目前,我使用的是JFreeChart Java库服务器端,它在绘制绘图方面做得很好,只需要大约一秒钟的时间就可以绘制出来 为了让我的应用程序更具交互性,我想切换到使用Javascript在客户端绘制图表。这将使我能够包括点、工具提示、可点击点等的交互式过滤。我曾尝试过谷歌图表,但这需要一段时间才能呈现,并使浏览器处于停滞状态 有人知道Javascript图表库可以处理如此大的

我正在构建一个web应用程序,该应用程序的界面包含一个大的散点图,以向用户提供其数据的概览。散点图大约有200000个点。目前,我使用的是JFreeChart Java库服务器端,它在绘制绘图方面做得很好,只需要大约一秒钟的时间就可以绘制出来

为了让我的应用程序更具交互性,我想切换到使用Javascript在客户端绘制图表。这将使我能够包括点、工具提示、可点击点等的交互式过滤。我曾尝试过谷歌图表,但这需要一段时间才能呈现,并使浏览器处于停滞状态


有人知道Javascript图表库可以处理如此大的数据集吗?还是我应该放弃这个想法,坚持JFreeChart?我不介意加载页面本身是否需要一段时间(这是不可避免的,因为要传输大量数据),但我需要在合理的时间内更新图表,以响应用户输入

您可能想尝试使用基于
raphael.js
的图表库。 不确定它们的渲染性能,但它们是优秀的html5库。 值得一试


我建议使用graph ExtJs 4库


如果是大数据,则需要将数据作为json进行传输。

我的建议是使用Highcharts和Highcharts股票()

你可以在那里找到一个52k数据点的演示,带有缩放、工具提示和交互:,在我的(相当快的)机器上构建图表大约需要90毫秒


然而,非常大的数据集最有可能带来很大的性能问题,无论是在网络传输、内存消耗、显示时间等方面。。。此外,在600*400图形上,200k数据点相当于大约1个数据点/像素,或者每列400个数据点,这毫无意义。也许一些分组和/或过滤是有用的。

< P>作为临时或替代的解决方案,考虑部署您的VAS。这提供了以交互方式更新图表外观的方法。

如果您有幸不为IE7或IE8开发,那么对于大量数据点,您可能希望尝试通过webgl利用图形卡。我还没有试过,但是
three.js
看起来很有趣。

对于今天正在研究这个问题的人来说,这是一个强大的用于绘制大型数据集的库,它是基于。它有几种图表类型,包括散点图、条形图和折线图。他们在绘图之前通过Square的库绘制数据缩减图。

正如其他人所指出的那样-

在有限的空间内创建这样一个高节点的交互图是非常困难的 几乎没有用-点将是不可辨认的和情节 至少可以说是人口过剩

可以使用当前视口和当前缩放级别限制需要显示的内容

缩放级别分组和分解 您可以使用当前的缩放级别相应地绘制图表,以便缩小的视图显示分组在一起的信息,并且当您放大到特定区域时,可以将数据分解为更多的图

我建议您将数据的小变化组合在一起,当用户放大时,您可以将当前可查看的数据分解为更小的数据块

当前视口/仅绘制视口中的数据 仅在视口中绘制点-避免在每个缩放级别上绘制散点图的所有点。您的用户很可能希望集中在某个点上—这就是他放大到该点的原因—因此避免绘制该特定缩放级别的所有细分点

不要局限于打印库 散点图在任何允许绘制形状/点的基本操作的Canvas/SVG库中实现都相当简单——因为这是一个相当高级的用例,我不想把自己限制在允许绘制的库中,而是四处寻找允许SVG/Canvas绘制的通用库


一个疯狂的想法,但我会尝试:

有一个用于在HTML5画布上绘制2D图形的库(它使用图形卡和CPU绘制图形),名为


它主要针对游戏开发,但用它画一个散点图,放大并允许点击你的点,这将是一个扣篮。

好问题。对于这么大的数据集,我认为您可能需要构建一个热图,虽然dc.js是一个很棒的库,但它的性能不足以显示大量节点。我提出这个问题是为了寻找一个可以绘制5k节点大小的散点图的替代库。基于SVG的库,比如dc.js,根本无法绘制那么多的数据点,反而会使浏览器崩溃。