2012-08-03 93 views
1

我有一个简单的散点图,上面有〜500,000个点。在图上有这么多点确实让我的应用程序滞后,这并不奇怪。我想知道是否有一种方法只为特定的x范围绘制点(如0-100或500-1000)。用户只会查看图形的某些点(通过放大),所以如果程序只需绘制少量这些点,那么它就会大大降低延迟。核心绘图 - 仅绘制图中特定范围内的点

我试过让图形重新绘制自己,每次用户放大/缩小或移动轴,但这实际上似乎使应用程序运行速度变慢。有没有解决这个问题的方法?

回答

0

您必须过滤数据,并只将可见点提供给数据源中的图。使用绘图空间代表来检测可见区域何时更改并根据需要调整数据。做到这一点的最佳方式将取决于您的应用程序如何在内部存储其数据。您需要使用数据结构,以便快速确定需要绘制哪些点。

您不想在每次更改时重新加载所有数据。这些图有插入和删除数据点范围的方法,同时保留其余数据。如果您一次只更改几个点,则这比每次重新加载所有数据要快得多。 Plot Gallery应用程序中的“Real-Time Plot”演示显示了使用这些方法的一种方法。