2010-07-14 37 views
1

早些時候,我發佈了關於可視化和聚類的問題。我想我的問題還不夠清楚,所以我再次發佈。我希望這次我能做出更好的解釋。我也爲我的舊問題「不接受答案」而道歉。我不知道我能做到這一點,直到有人指出。我一定會從現在開始做。可視化和聚類

好的。回到問題。以前我寫過一個python腳本來計算文檔之間的相似性。現在,我把所有的數據寫入到記事本,它看起來像這樣:

(1, 6821): inf 

(1, 8): 3.458911570 

(1, 9): 7.448105193 

(1, 10): inf 

(1, 11): inf 

(6821, 8): inf 

(6821, 9): inf 

(6821, 10): inf 

(6821, 11): inf 

(8, 9): 2.153308936 

(8, 10): inf 

(8, 11): 16.227647992 

(9, 10): inf 

(9, 11): 34.943139430 

(10, 11): inf 

括號中的數字代表文件編號。而後面的值是兩個文件之間的距離。我想要的其實是可視化工具或方法,我可以創建代表每個文檔編號的節點。例如在這裏,我有6個不同的文件。所以我希望創建6個不同的節點來代表我的文檔編號。然後,我想要有根據它們的距離連接這些節點的邊緣。例如,文檔1和8之間的距離是3.46,而文檔1和9之間的距離是7.45。所以,1 & 8需要更接近於1 & 9.雖然具有'inf'距離的文檔對不應該有任何連接或邊緣將它們連接在一起。

這聽起來很簡單,但我真的很難找到一個開源可視化工具,可以有效地幫助我執行此操作。我很欣賞任何建議。

+2

嗨,@Jacky。你不應該轉發問題,因爲原文不清楚 - 一般來說,最好修改原始問題(http://stackoverflow.com/questions/3240658/visualize-data-and-clustering) – 2010-07-14 20:50:03

回答

1

http://www.graphviz.org/

尤其是neato包:

$ cat similar.dot 
graph g { 
    n1 -- n8 [ weight = 3.458911570 ]; 
    n1 -- n9 [ weight = 7.448105193 ]; 
    n8 -- n9 [ weight = 2.153308936 ]; 
    n8 -- n11 [ weight = 16.227647992 ]; 
    n9 -- n11 [ weight = 34.943139430 ]; 
    n10; 
    n6821; 
} 
$ neato -Tpng similar.dot -o similar.png 

http://img534.imageshack.us/img534/4189/similar.png

+0

謝謝!這幾乎就是我想要的佈局。我已經嘗試過了,它完美無缺。 – Jacky 2010-07-15 17:11:20

2

你試過GraphViz?我用它來處理這種情況。我沒有嘗試改變節點連接的長度,你必須弄清楚這一點。請以list of example graphs爲出發點。

0

處理對於數據可視化(以及基於Java的語言)來說是一個非常可愛的工具。可以把它看作是在Java中編寫簡化的OpenGL(如果需要,你甚至可以使用OpenGL),並且可以自由使用所有的Java庫。您甚至可以將您的Processing應用程序嵌入到另一個Swing或AWT應用程序中。

這是main page和全新的wiki

你說你使用了Pyton。有一個黑客,所以你可以在this blog post中使用Jython而不是Java。我沒有嘗試過,但也許它工作正常。使用另一種語言的唯一缺點(也有一個JavaScript'port',Processing.js)是所有的例子都是針對Processing語言的(基於Java)。