我有一个简单的散点图,上面有约500,000点。在图表上有这么多点真的让我的应用程序滞后,这并不奇怪。我想知道是否有办法只绘制特定x范围的点(如0-100或500-1000)。用户只会查看图表中的某些点(通过放大),因此如果程序只需要绘制少量的这些点,那么它就会减少延迟。
每次用户放大/缩小或移动轴时,我都尝试重新绘制图形,但实际上这似乎会让应用程序运行得更慢。这个问题有解决方案吗?
答案 0 :(得分:0)
您必须过滤数据,并仅为数据源中的绘图提供可见点。使用绘图空间委托来检测可见区域何时更改并根据需要调整数据。最好的方法取决于您的应用在内部存储数据的方式。您将需要使用一种数据结构,以便快速确定需要绘制哪些点。
每次更改内容时,您都不希望重新加载所有数据。这些图包含插入和删除数据点范围的方法,同时保留其余数据。如果您一次只更改几个点,这比每次重新加载所有数据要快得多。 Plot Gallery应用程序中的“Real-Time Plot”演示显示了使用这些方法的一种方法。