作者:涼皮
編輯:西西姐
封面圖:侯爵老師
在這樣的一個數據時代,很多事情都是靠資料說話,資料視覺化可謂十分重要,一圖勝千言。
我們精選了 10 個圖表庫,無論你是想快速上手做一個數據視覺化的網站,還是想做一個彙總資料的儀表盤,又或者想在會議上更好的展示資料,都能在這裡面找到最適合你的那一個。
圖表最全,老前端的最愛:D3。js
D3。js 可以說是圖表最全的庫了,你能想到的圖表型別這裡都有。
它也是 GitHub 上加星數最多的圖表庫,多達 89551 個 Star。這意味著你可以很容易找到一個別人寫好的示例,然後改成自己想要的圖表。
然而,D3 的缺點在於,它是 2011 年釋出的,使用的是比較早期的前端方式來實現,大量依賴了 DOM 操作。如果你喜歡 JQuery,那你使用 D3。js 會很順滑。然而這會讓它與現代的前端框架有點格格不入。
並且 D3 依賴於繪製 SVG 影象,而不是使用 CSS,這就讓它佔用的記憶體會大一些。
如果你想使用的圖表在其他庫中找不到,那 D3 一定有。但如果你對網頁記憶體的要求比較高,可以看看下面更為現代的圖表庫。
地址:https://d3js。org
JS 中最易上手:Chart。js
如果你想15分鐘以內寫好一個圖表,那就用 Chart。js 吧。
這是一個小巧的 JS 圖表庫,在 GitHub 上有 1427671 開發者在用。用 Chart。js 可以快速建立動畫、互動式和可定義的圖表,它允許使用者將不同的圖表型別混合在一起使用,它有開箱即用的動畫效果,在更改資料、顏色時,都有一個動畫過渡。
對初學者比較友好,容易設定,但是圖表型別沒有別的圖表庫那麼豐富,適合想要快速執行簡單圖表的開發者。如果是另類需求的話,圖表型別可能不夠用。
它可以在 HTML5 Canvas上繪製出響應式的圖表,在視窗大小改變的時候,重新繪製圖表,以此調整縮放比率。
地址:https://www。chartjs。org/
中國使用最多:Echarts
Echarts 是百度前端技術部開發出來的一個純 JS 的資料視覺化庫,它相容現在的大部分瀏覽器,也可以流暢地執行在 PC 和移動端上。由於中文文件支援的很好,所以在國內的使用最多。
在豐富的圖表型別中,實現了的強大的三維視覺化,像用 ECharts 普通元件那樣使用 ECharts GL 就能繪製出三維的地球,建築群和人口分佈的柱狀圖等。
在 4。0+版本新增的增量渲染技術,讓 ECharts 能夠展現千萬級的資料量(一般情況下幾千萬的地理座標資料儲存會佔用很大的空間),而在這個資料量級依然能夠實現流暢的縮放平移等互動。
地址:
https://echarts。apache。org/zh/index。html
互動性圖表庫:Highcharts
Highcharts 完全基於 HTML5,不用安裝任何外掛,或配置執行環境。
提供了豐富的圖表型別,線圖、柱形圖、餅圖、混合圖等,還提供了股票走勢圖、高階時間軸圖和豐富多樣的地圖,並且附帶了很多預構建的圖表,它還可以在圖表中添加註釋。
Highcharts 相容性很強(IE6+),同時也能完美支援移動端觸控操作和手勢縮放。
Highcharts 在 GitHub 上開源,但商用收費。
地址:https://www。highcharts。com
科學計算圖表鼻祖:Matplotlib
Matplotlib 是第一個 Python 的資料視覺化庫,所以很多其他庫都是在 matplotlib上構建的。適合用在科學計算領域。
它非常強大,但也比較複雜,沒有那麼容易弄清楚,想要做出一個看起來還不錯的圖表,可能就需要寫大量的程式碼。
Matplotlib可以輕鬆地建立網格,標籤,圖例等,它的所有內容都是可以自定義的。
地址:https://matplotlib。org
統計資料進階利器:Seaborn
Seaborn 是 Matplotlib 基礎上建立的,但是在 GitHub上面的星星數要比 Matplotlib多,是本文推薦的 Python 圖表庫裡最多星星的。
如此受歡迎大概是因為 Seaborn 有驚人的預設主題,有了這些內建的預設樣式和調色盤,我們可以只用幾行程式碼來建立複雜而且漂亮的圖表。
Seaborn只是 Matplotlib補充,而不是替代,在很多情況下,還是需要先學一下 Matplotlib 才能調整 Seaborn 相關的預設設定。
地址:https://seaborn。pydata。org
可做動圖、儀表盤:Bokeh
Bokeh 基於網頁的畫圖工具庫,它的優勢在於建立互動式圖表,做出來的圖表可以儲存為 HTML檔案。
它可做動圖,也可以做儀表盤的排版,也可只打開一張表或者做圖表的聯動。
有三個不同的程度的介面,一是能快速建立常用圖表;二是允許使用者控制圖表的基本模組,比如說散點圖的點;三是沒有預設的預設值,要求使用者定義圖表的每一個元素。
地址:
https://docs。bokeh。org/en/latest/index。html
Python 中最易上手:Chartify
Chartify 是Spotify 開源的一個 Python 圖表庫,建立在 bokeh 之上,和其他的圖表庫相比,它的語法更加簡潔友好,API 比較直觀易學,而且有非常詳細的使用說明。
不同的繪圖方法往往需要不同的資料格式,從而要求使用者完全重新格式化輸入的資料。這導致我們需要花費大量時間將資料操縱到合適的圖表上,但是 Chartify 能解決這個問題,它是輸入一致的資料格式,可以讓你快速建立圖表,而且它的預設圖表就很漂亮,不用你花費很多的時間來配置美觀的圖表。
Chartify 靈活性高,如果需要較複雜的繪圖功能,可以呼叫 bokeh 的 API 來操縱 Chartify。
地址:https://pypi。org/project/chartify
十項全能,快速做儀表盤:Plotly
Plotly 是一個用於資料視覺化的線上平臺,Plotly 的團隊也維護著用於 R,Python和 JS 的開源的視覺化庫,像 Bokeh 一樣,Plotly 的強項也是製作互動式繪圖。
Plotly Dash 可以將我們用 plotly 畫出的圖透過互動式視覺化的方式表達出來,在 web 瀏覽器中呈現。
Plotly。js 有 40多種圖表型別,包括 3D 圖表,統計圖和 SVG 地圖。它大多數繪圖都是用 SVG 繪製的,這一點為跨瀏覽器、向量影象匯出提供了很大的相容性。
Plotly。py 內建在 Plotly。js 之上,它可以在 Jupyter 筆記本和獨立 HTML 檔案中檢視圖表,還提供了一些別的庫沒有的圖表型別,比如樹狀圖、輪廓圖等。
地址:https://plot。ly
無需程式設計建立圖表:infogram
infogram 是一個可以線上做圖表的平臺,只需幾分鐘,你就可以創建出比較好看的圖表,如果想要不敲程式碼也能做出美觀的圖表,那這個 infogram 是一個不錯的選擇。
地址:https://infogram。com
總結:
最易上手獎 Chart。js
如果你時間有限,那 chart。js 絕對是你的最佳選擇。
終身成就獎 D3。js
如果你愛 jQuery 那麼你也會愛死了 D3。js,你要記得有那麼個年代它撐起了圖表界的半邊天。
專業精神獎 Matplotlib
感謝 Matplotlib 在科學計算圖表領域帶來了容易使用以及最細緻入微的文件。
十項全能獎 Plotly
能力越大責任越大,能做的這麼多,用起來稍微複雜一點也不是什麼問題,你說是吧?
最佳新人獎 Chartify
如果你會用 Python,那麼你就會用 chartify。