1

我有一个简单的散点图,上面有大约 500,000 个点。图表上有这么多点确实让我的应用程序滞后,这并不奇怪。我想知道是否有办法只为特定的 x 范围(如 0-100 或 500-1000)绘制点。用户只会查看图表的某些点(通过放大),因此如果程序只需要绘制少量这些点,它会减少延迟。

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

4

1 回答 1

0

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

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

于 2012-08-04T00:14:14.123 回答