學習
-
HTML、CSS、JavaScript、jQuery
在做資料視覺化之前,必須要學會基本的相關程式語言。而我目前學習了HTML、CSS、JavaScript,學習這三者我主要是藉由學長所推薦的codecademy來學習,我覺得非常實用,裡面包含許多程式語言教學,除了主題式的教學之外,還有在課程結尾會要求做的一整個網頁,還富有影片的示範,非常容易上手。
下圖為我所練習的動態長條圖,主要利用jQuery讓這幾條長條圖每1秒改變一次數值,同時依照數值高低變化顏色的深淺程度。
-
leaflets、topojson
另外,視覺化所需的相關套件及library,像是leaflet這個能夠畫出地圖及在地圖上做標記,以及切換自己想要的圖層。在做資料標記的時候,常常會需要標記大量的點或範圍來做標記或是畫地圖。
就畫地圖而言,像這種龐大的資料通常都是用geojson檔或是topojson檔來做讀取。就下圖畫台灣地圖為例,可以看到geojson檔及topojson檔的效率差別非常的大,節省了很多網頁運行的時間。
而 TopoJSON 是 GeoJSON 按拓撲學編碼後的擴展形式消除了冗余。而且它重複邊界線只記錄一次、地理坐標使用整數,不使用浮點數、點列表除了第一個點以外,其他的點都只儲存相對位置,以及它是通過topojson.simplify 壓縮,因此文件大小相比geojson整整縮小了80%。
下圖為topojson檔
下圖為geojson檔
(3) D3.js
其實是javascript的函式庫,可以說是視覺化最好了利器。比起像是anychart、chart等等函式庫,它的優點在於彈性很大,使用者可以透過程式碼,自行調整出不同的變化。相對的,在了解這個函式庫也會比其他彈性較小的函式庫複雜許多。
(4) Python
雖然我在大三的時候就有修過python的課程,但那個時候只是大概知道python很厲害,有很多模組,可做很多分析、爬蟲等等的東西。而在做資料處理這方面Python其實也有很多模組可以用, 我目前也有很多不懂的地方,在座資料處理時同時也在慢慢學習及摸索。
(5) Echarts
目前我所更新的社會網絡分析圖主要就是透過Echarts來開發的,同樣也是做視覺化相當方便的一個工具。但相比D3.js,它的彈性相對較小,上手也較簡易,但是基於目前的考量,現階段還是會以Echarts結合javascript等來做最主要的開發。