原文轉自:http://gossipcoder.com/?p=762
鑒於經常折騰一些網絡數據,為了忽悠老板、聽眾和審稿人,經常要生成一些復雜網絡的圖片——某些時候還得帶點交互功能。羅列一下自己常用的復雜網絡可視化工具,完完全全是以偏概全。
- Cytoscape
曾經的最愛,還折騰過其文檔的中文化。一大票的著名大學和大企業聯合開發出來的東西,最初是專注於生物網絡的可視化和相關數據的融合,隨着功能不斷的擴展,已經成為了面向各種復雜網絡的可視化工具。不過強項依然是生物網絡,最吸引的人是眾多的插件和強悍的數據融合能力。不過,在3.0版本出來之前,想要在命令行完成所有操作是不可能的。基於Java的桌面圖形應用,加上強悍的互動能力,在性能方面讓人難以忍受。寫插件時會發現文檔里面有很多未注釋的接口,只能從接口名稱猜功能。
針對Web應用的網絡數據可視化工具,看名字就知道跟Cytoscape有千絲萬縷的聯系。Flash加Javascript組成的工具,可以嵌在網頁中顯示復雜網絡,交互功能比較彪悍。用這玩意寫過一個簡單的數據展示網頁,關於乳腺癌的。跟Cytoscape一樣,這玩意在處理大網絡時性能也不怎么樣。不知道什么時候能進化到HTML 5。
- R的igraph包
igraph是一個C++的庫,有C++、Python和R的接口。作為R的用戶,自然是選用R的接口。igraph的效率要高得多,在批量生成圖形時,也非常方便。但缺點是,各種類型的數據融合都要自行處理,必須要去熟悉Bioconductor里面的很多包。
- Perl的GraphViz包
簡單,方便。GraphViz本來是一組用於繪制復雜網絡的工具,有很多開發語言都對其進行了封裝,提供了接口,包括Perl。CPAN上的Graphviz包就是用於調用GraphViz的。
