2012-08-03 91 views
1

我有一個簡單的散點圖,上面有〜500,000個點。在圖上有這麼多點確實讓我的應用程序滯後,這並不奇怪。我想知道是否有一種方法只爲特定的x範圍繪製點(如0-100或500-1000)。用戶只會查看圖形的某些點(通過放大),所以如果程序只需繪製少量這些點,那麼它就會大大降低延遲。核心繪圖 - 僅繪製圖中特定範圍內的點

我試過讓圖形重新繪製自己,每次用戶放大/縮小或移動軸,但這實際上似乎使應用程序運行速度變慢。有沒有解決這個問題的方法?

回答

0

您必須過濾數據,並只將可見點提供給數據源中的圖。使用繪圖空間代表來檢測可見區域何時更改並根據需要調整數據。做到這一點的最佳方式將取決於您的應用程序如何在內部存儲其數據。您需要使用數據結構,以便快速確定需要繪製哪些點。

您不想在每次更改時重新加載所有數據。這些圖有插入和刪除數據點範圍的方法,同時保留其餘數據。如果您一次只更改幾個點,則這比每次重新加載所有數據要快得多。 Plot Gallery應用程序中的「Real-Time Plot」演示顯示了使用這些方法的一種方法。