前幾天發現一個可視化工具Dash,當看到它的交互式效果后突然就覺得眼前一亮。早就想寫出來分享給大家,今天利用睡前一點時間發出來,希望能給有需要的朋友帶來一點幫助或者多一個參考。
Dash介紹
在Python語言環境里,有不少可視化解決方案,以前的公眾號文章曾經介紹過幾個。這些工具很適合利用靜態數據來展示圖形效果,如果要在數據基礎之上增加交互功能,就需要額外增加不少代碼。要么實現起來比較復雜,要么很難實現實時交互。
有了Dash以后,這個問題就好解決了。
Dash是利用Flask、plotly.js和React.js構建起來的自定義可視化開源框架。
大概在2017年6月,Dash被正式發布為開源庫,用於構建交互式可視化網頁。類似echarts和highcharts,基本上都是基於js來實現圖形效果。但是!Dash是基於Python運行,這就可以跟pandas和Numpy,甚至人工智能的包無縫對接。
有人又要說了,D3、echarts和highcharts在Flask下也可以結合使用啊。是的,但是Dash為你做了很多整合的工作,代碼量要少很多,甚至你不要懂太多的HTML標簽就可以做交互式報表。
Dash安裝
支持Python2和3
pip install dash==0.18.3
pip install dash-renderer==0.10.0
pip install dash-html-components==0.7.0
pip install dash-core-components==0.12.6
pip install plotly --upgrade
安裝成功之后,我們先來運行一個簡單的示例。這里拿13日收盤后漲幅排名前50只股票的PE做一個柱狀圖的展示。
運行效果如下:
交互式效果
由於時間關系,暫且只從官網找一些交互式效果展示給大家。
1、通過pandas DataFrame數據展示Slide效果
2、動態地圖效果
3、交互式數據表格
4、動態3D效果
Dash組件
Dash封裝了常見常用的HTML組件,類似上面動態交互的輸入框、下拉菜單,按鈕等。
我們看幾個最簡單的,有興趣的朋友可以自己嘗試。
1、輸入框
2、復選框
3、按鈕
4、數據上傳組件
5、選項卡功能
總結
使用下來總體感覺比較簡單,很方便快捷的構建起了交互式報表的效果。組件化的方式和實現方式比較傳統,很適合我們這種老程序員上手:)
對於新入行的技術人員來說,這個工具無疑也是一個非常好的上手交互式可視化的利器。在大數據可視化需求多樣化、花樣化的當下,在眾多可視化工具可供選擇的當下,一款最適合自己、最適合當前項目的才是最優選擇。
以上介紹,希望對你有用。