天天看點

五個建立互動式圖表的Python庫◆ ◆ ◆mpld3◆ ◆ ◆pygal◆ ◆ ◆Bokeh◆ ◆ ◆Holo Views◆ ◆ ◆plotly

資料可視化專家andy kirk說過,資料可視化分為兩類:探索性可視化圖表和解釋性可視化圖表。解釋性可視化圖表的目标是進行描述——它們是根據對事物表面的關鍵線索而被仔細構造出來的。

另一方面,探索性可視化圖表建立了與資料庫或主題事件的互動,它們幫助使用者探索資料,讓他們發掘自己的觀點:發現他們自己認為相關的或者感興趣的事物。

通常,探索性可視化圖表是互動式的。盡管現在有許多python繪圖庫,但隻有少數可以建立能夠使你線上嵌入和釋出的互動圖表。今天與大家分享五個我們最喜愛的python繪圖庫。

五個建立互動式圖表的Python庫◆ ◆ ◆mpld3◆ ◆ ◆pygal◆ ◆ ◆Bokeh◆ ◆ ◆Holo Views◆ ◆ ◆plotly

自定義插件示例

mpld3 将phython的核心繪圖庫matplotlib和備受歡迎的javascript圖表庫d3結合在一起,建立了與浏覽器相容的可視化圖形。你可以在matplotlib中繪制一張圖表,運用phython和javascript插件增加互動功能,然後用d3渲染。

mpld3包含縮放、平移和增加提示工具條(當滑鼠懸浮于某一資料點上,出現提示資訊)等内置插件。然而,mpld3的真正亮點在于它齊全的api,允許讓你創造自定義插件。如果你熟悉d3和javascript,就可以創造無窮盡的各種圖形。

當你準備釋出圖形的時候,在最後添加一行額外的代碼,把你的圖形轉換成html和javascript字元,就可以嵌入到任何網頁中。

mpld3 最适用于小型或中型資料庫。帶有成千上萬資料點的圖形會降低浏覽器處理速度。

五個建立互動式圖表的Python庫◆ ◆ ◆mpld3◆ ◆ ◆pygal◆ ◆ ◆Bokeh◆ ◆ ◆Holo Views◆ ◆ ◆plotly

基本點圖

pygal是制作漂亮的即用圖表的優選繪圖庫,它隻需要編寫很少的代碼。每種表格都被打包成一個類函數(如:pygal.histogram()制作柱狀圖, pygal.box() 制作箱型圖),并且它有各種色彩預設風格。如果想要更多掌控,你可以配置各種圖表元素——包括大小、标題、标簽和渲染。

圖表預設顯示工具提示欄,但是目前不能放大、縮小或者平移圖表。

你可以通過svgs的形式導出圖表,并且把它們加載到帶有嵌入标記的網頁中,或在html中直接插入代碼。像mpld3一樣,pygal适合更小型的資料庫。

五個建立互動式圖表的Python庫◆ ◆ ◆mpld3◆ ◆ ◆pygal◆ ◆ ◆Bokeh◆ ◆ ◆Holo Views◆ ◆ ◆plotly

交叉過濾器示例

bokeh受到《the grammar of graphics》中概述的概念啟發。 你可以把各個元件逐個疊加在一起來建立最終的圖表——例如,你可以以坐标軸為起點,添加點、線、标簽等。

圖表可以輸出為json對象、html檔案或者互動式網絡應用。bokeh在允許使用者在浏覽器中操作資料方面做得尤為突出,使用者可以通過滑動和下拉菜單進行篩選。與mpld3一樣,你可以在其中縮放和平移操作圖表,但是也可以關注通過框或套索選中的一組資料點上。

五個建立互動式圖表的Python庫◆ ◆ ◆mpld3◆ ◆ ◆pygal◆ ◆ ◆Bokeh◆ ◆ ◆Holo Views◆ ◆ ◆plotly

利用bokeh後端的地圖

holoview實際上并不是一個繪圖庫。相反,它讓你建構有助于可視化的資料結構。當你把資料移入holoview 容器對象(container object)中,比如用于多變量分析的網格矩陣(gridmatrix)或用于顯示相鄰成份的布局(layout)時,你可以直覺地探索資料。在matplotlib或bokeh後端中繪圖是分開進行的,是以,你能夠專注于資料,而非編寫繪圖代碼。

holoviews提供的主要互動功能是滑動條,是以,人們能夠通過一個變量來觀察它的影響。當使用boken後端時,你可以結合滑塊和bokeh的工具探索圖形,例如對它進行縮放和平移。

holoviews融合了seaborn和pandas,擴大了pandas資料幀和seaborn的統計圖表的功能。

五個建立互動式圖表的Python庫◆ ◆ ◆mpld3◆ ◆ ◆pygal◆ ◆ ◆Bokeh◆ ◆ ◆Holo Views◆ ◆ ◆plotly

範圍滑塊示例

從簡單的條形圖表到複雜的3d網格圖形,plotly擁有廣泛的具有出版物品質的圖表類型。

plotly是一個預設基于網絡的服務,但是你可以在python中使用離線庫,并且上傳圖表到plotly免費公共伺服器或付費私人伺服器。從那裡,你可以把圖表嵌入到網頁中。

所有的plotly圖表包含工具提示,一旦利用plotly的javascript api把圖表嵌入後,你就可以在其頂部設定自定義控件(如滑塊和篩選)。

另一種在plotly中操作和分享圖形的方式是在mode中進行操作。你可以用sql拖入資料,在phthon notebook中,利用plotly離線庫繪制查詢的結果,之後把互動式圖表添加到報告中。這份報告以可分享的url線上,也可以嵌入其他頁面,例如下圖中展示的,從1950年開始,樂高積木套裝尺寸是如何改變的:

五個建立互動式圖表的Python庫◆ ◆ ◆mpld3◆ ◆ ◆pygal◆ ◆ ◆Bokeh◆ ◆ ◆Holo Views◆ ◆ ◆plotly

原文釋出時間為:2016-11-28

本文來自雲栖社群合作夥伴“大資料文摘”,了解相關資訊可以關注“bigdatadigest”微信公衆号