自己動手寫可視化軟體(代碼已開源)

來源:互聯網
上載者:User

標籤:

  一年多前,那時候我還在實習,正好上一個項目接近的尾聲,緊隨而來的就是一個大資料一體化的項目,包括了資料的採集、處理、計算、整合以及資料展示等。

  而可視化這塊,在前期就落在了我的頭上,雖然這款開源的小工具最終沒有作為大資料視覺效果的解決方案,但是這是一個自己完完整整,一步一個腳印寫起來的,從中學到的東西自然不僅限於這款工具,還有尋找資料的方法、解決問題的思路等等,總得來說都是一段不錯的學習經曆。

  時隔一年多,我還是想著把代碼開源出來:

  • 一來是因為這是群友和一些網友的呼聲;
  • 二來是目前的工作與可視化方向也漸行漸遠,放出代碼算是對過去的一個總結或是告別;
  • 最後也是希望通過把代碼放出來,為別人提供一點思路,也為自己提供一個對外交流的視窗。

不管代碼好壞,擁抱開源,這也是一種學習的態度。

 

  之前在寫這款工具的時候,有不時的在可視化系列裡記錄下了自己的心得或是遇到的問題以及取得的成果^^

    《視覺化檢視solo show》

    《視覺化檢視solo show-----Processing Prefuse show》

    《視覺化檢視solo show-----Prefuse內建例子GraphView講解》

    《漫談可視化Prefuse(一)---從SQL Server資料庫讀取資料》

    《漫談可視化Prefuse(二)---一分鐘學會Prefuse》

    《漫談可視化Prefuse(三)---Prefuse API資料結構閱讀有感》

    《漫談可視化Prefuse(四)---被玩壞的Prefuse API》

    《漫談可視化Prefuse(五)---一款屬於我自己的視覺化檢視》

    《漫談可視化Prefuse(六)---改動源碼定製邊粗細》

 

  這款小工具主要是基於Prefuse的工具庫來寫的,不同於gephi這樣的既有對外暴露的API,又有整合的工具gephi軟體,Prefuse提供了支援多種布局,支援不同的資料結構,能夠即時互動,文本索引,通過sql與資料庫連接等等功能豐富的介面。但是我們在Prefuse的官網上並沒有看到一個完整的工具或者軟體,這裡的小工具是將這些支援的功能做一個整合并加入一些常用的需求,從而就形成了現在工具的樣子。

 

代碼託管在Github上

   https://github.com/DMinerJackie/prefuse-visualization-tool

  同時還有一些文檔在resource目錄下面

 

已經實現的功能舉例

  • 工具主要分為四大塊,頂端的功能表列,左側的資訊列,中間的圖形展示區,右側的參數調整區(還沒實現);

 

  • 當中間的映像 去沒有圖形也就是沒有匯入資料時,功能表列中的部分按鈕為灰色不可用,只有匯入資料才變為可用狀態;

 

  • 選擇匯入後,資訊展示區就會顯示出節點/邊的個數和條數,以及圖形的性質是有向還是無向等;

 

  • 點擊檔案->開啟,選中資料檔案後會彈出圖形配置資訊,比如可以展示位有向/無向/混合圖,可以選擇要展示的節點標籤,這些都是在資料檔案中有配置;

  • 支援多種布局演算法,具體可參看前幾篇展示效果;
  • 對於節點上的標籤可以選擇顯示或不顯示,如果有加入圖片資訊,還可以顯示圖片(關於在節點上顯示圖片,可以參看項目中的例子);
  • 可以改變節點的形狀,如矩形,圓形等;
  • 支援邊直線曲線的顯示(在工具中還沒有實現,可以參看前幾篇中的demo);
  • 可以根據資料檔案中配置邊的權重展示不同粗細的邊;
  • 支援懸浮高亮和近鄰高亮(這裡滑鼠懸浮在Alan節點上,其高亮為紅色,而與Alan相鄰的如Non也會橙色高亮顯示);
  • 支援適應螢幕顯示,點擊控制器->適應螢幕顯示,就會將圖形縮放到能夠在映像展示區顯示為止

 

操作展示

  • Part 1:

 

  • Part 2:

 

  • Part 3:

 

注意事項

  • 其中有些test有hard code,如果無法運行,請檢查是否有hard code比如讀取設定檔的路徑
  • 有些功能需要做實現準備,比如串連資料庫的功能,需要你本機某個資料來源比如sql server中或者mysql,並在其中按照要求興建資料,在工具中配置好後才可以同步資料庫中的資料並顯示
  • 有些功能模組截至目前還沒有具體的實現,比如"Action配置"模組
  • 載入圖形時,有時候會有重影的現象,記得這是開發中期後才遇到的情況
  • 工具中的右側面板參數調整還沒有實現

 

限於個人水平有限,有問題歡迎不吝賜教,或者在github上提出issue。

如果您覺得閱讀本文對您有協助,請點一下“推薦”按鈕,您的“推薦”將是我最大的寫作動力!如果您想持續關注我的文章,請掃描二維碼,關注JackieZheng的公眾號,我會將我的文章推送給您,並和您一起分享我日常閱讀過的優質文章。

 

自己動手寫可視化軟體(代碼已開源)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.