2010-04-19 91 views
3

我有大量的數據點是非整數值(浮點數)的二維座標。我正在尋找一個Java庫,可以幫助我繪製這些點,允許自定義點的大小,顏色和標籤。此外,我希望用戶能夠通過平移和縮放與點進行交互,並且我希望能夠捕獲用戶的KeyEvent。用Java繪製點與交互

處理看起來很棒我想要什麼,但我不想從頭開始做所有事情。有更好的解決方案嗎?

在此先感謝。

編輯:有約2k點。

回答

2

取決於。我最近做了使用JFreechart顯示大型二維數據集的應用程序,但是我最終減小了數據集的性能。

我顯示了點數的矩陣,它隨着時間(新數據到達時)發生變化,刷新時間爲1秒(因此每一秒鐘的圖表都被重新繪製)。

對於matries 256 x 256在正常的用戶計算機上可以。如果矩陣約爲350點,則會變得粗糙(用戶看到GUI中的延遲),但是如果矩陣爲1024 x 1024,則應用程序不可用。

雖然我把圖表繪製爲EDT,但即使我把它放入不同的線程---渲染仍然會消耗處理器的能量。

因此,根據數據集的大小---你可能想使用JFreeChart。

2

我還沒有找到適合大數據集的好庫。

當你說大的是什麼意思? 1k,10萬或100萬點?

我剛剛推出了自己的自從我的數據集至少100k點。我試過了所有我能找到的圖表庫,但沒有一個能夠像我自己推出的圖表一樣快。

+0

我的數據集約爲2k points。不過,我不需要這麼快。 – mellort 2010-04-19 18:29:40

1

這個example很容易處理上千個節點。

GraphPanel() { 
    ... 
    Random rnd = new Random(); 
    for (int i = 0; i < 2000; i++) { 
     Point p = new Point(rnd.nextInt(WIDE), rnd.nextInt(HIGH)); 
     nodes.add(new Node(p, 4, Color.blue, kind)); 
    } 
}