五個創建交互式圖表的Python庫
數據可視化專家Andy Kirk說過,數據可視化分為兩類:探索性可視化圖表和解釋性可視化圖表。解釋性可視化圖表的目標是進行描述——它們是根據對事物表麵的關鍵線索而被仔細構造出來的。
另一方麵,探索性可視化圖表建立了與數據庫或主題事件的互動,它們幫助用戶探索數據,讓他們發掘自己的觀點:發現他們自己認為相關的或者感興趣的事物。
通常,探索性可視化圖表是交互式的。盡管現在有許多Python繪圖庫,但隻有少數可以創建能夠使你在線嵌入和發布的交互圖表。今天與大家分享五個我們最喜愛的Python繪圖庫。
◆ ◆ ◆
mpld3
自定義插件示例
Mpld3 將Phython的核心繪圖庫matplotlib和備受歡迎的JavaScript圖表庫D3結合在一起,創建了與瀏覽器兼容的可視化圖形。你可以在matplotlib中繪製一張圖表,運用Phython和JavaScript插件增加交互功能,然後用D3渲染。
Mpld3包含縮放、平移和增加提示工具條(當鼠標懸浮於某一數據點上,出現提示信息)等內置插件。然而,Mpld3的真正亮點在於它齊全的API,允許讓你創造自定義插件。如果你熟悉D3和JavaScript,就可以創造無窮盡的各種圖形。
當你準備發布圖形的時候,在最後添加一行額外的代碼,把你的圖形轉換成HTML和JavaScript字符,就可以嵌入到任何網頁中。
Mpld3 最適用於小型或中型數據庫。帶有成千上萬數據點的圖形會降低瀏覽器處理速度。
◆ ◆ ◆
pygal
基本點圖
Pygal是製作漂亮的即用圖表的優選繪圖庫,它隻需要編寫很少的代碼。每種表格都被打包成一個類函數(如:pygal.Histogram()製作柱狀圖, pygal.Box() 製作箱型圖),並且它有各種色彩默認風格。如果想要更多掌控,你可以配置各種圖表元素——包括大小、標題、標簽和渲染。
圖表默認顯示工具提示欄,但是目前不能放大、縮小或者平移圖表。
你可以通過SVGs的形式導出圖表,並且把它們加載到帶有嵌入標記的網頁中,或在HTML中直接插入代碼。像mpld3一樣,pygal適合更小型的數據庫。
◆ ◆ ◆
Bokeh
交叉過濾器示例
Bokeh受到《The Grammar of Graphics》中概述的概念啟發。 你可以把各個組件逐個疊加在一起來創建最終的圖表——例如,你可以以坐標軸為起點,添加點、線、標簽等。
圖表可以輸出為JSON對象、HTML文件或者交互式網絡應用。Bokeh在允許用戶在瀏覽器中操作數據方麵做得尤為突出,用戶可以通過滑動和下拉菜單進行篩選。與mpld3一樣,你可以在其中縮放和平移操作圖表,但是也可以關注通過框或套索選中的一組數據點上。
◆ ◆ ◆
Holo Views
利用Bokeh後端的地圖
HoloView實際上並不是一個繪圖庫。相反,它讓你構建有助於可視化的數據結構。當你把數據移入HoloView 容器對象(Container object)中,比如用於多變量分析的網格矩陣(GridMatrix)或用於顯示相鄰成份的布局(Layout)時,你可以直觀地探索數據。在matplotlib或Bokeh後端中繪圖是分開進行的,因此,你能夠專注於數據,而非編寫繪圖代碼。
HoloViews提供的主要交互功能是滑動條,因此,人們能夠通過一個變量來觀察它的影響。當使用Boken後端時,你可以結合滑塊和Bokeh的工具探索圖形,例如對它進行縮放和平移。
HoloViews融合了Seaborn和pandas,擴大了pandas數據幀和Seaborn的統計圖表的功能。
◆ ◆ ◆
plotly
範圍滑塊示例
從簡單的條形圖表到複雜的3D網格圖形,Plotly擁有廣泛的具有出版物品質的圖表類型。
Plotly是一個默認基於網絡的服務,但是你可以在Python中使用離線庫,並且上傳圖表到Plotly免費公共服務器或付費私人服務器。從那裏,你可以把圖表嵌入到網頁中。
所有的Plotly圖表包含工具提示,一旦利用Plotly的JavaScript API把圖表嵌入後,你就可以在其頂部設置自定義控件(如滑塊和篩選)。
另一種在Plotly中操作和分享圖形的方式是在Mode中進行操作。你可以用SQL拖入數據,在Phthon Notebook中,利用Plotly離線庫繪製查詢的結果,之後把交互式圖表添加到報告中。這份報告以可分享的URL在線,也可以嵌入其他頁麵,例如下圖中展示的,從1950年開始,樂高積木套裝尺寸是如何改變的:
原文發布時間為:2016-11-28
本文來自雲棲社區合作夥伴“大數據文摘”,了解相關信息可以關注“BigDataDigest”微信公眾號
最後更新:2017-05-31 11:05:16