[Vis] Plot.ly Offline (Python)|資料視覺化

Ichi Tsai
Ichi’s Dev Blog
Published in
5 min readFeb 20, 2018
有點失速的 Gif 螢幕錄影

前言

之前 Data Vis sharing 的時候,很推 plot.ly 這個想寫 code 也可以不想就拖拖拉拉 (drag-and-drop) 的視覺化工具。但當時還不知道有 offline 的功能,試過如果要 private 圖的話,只有 10 張圖的 quota,對只是想要在研究 project 裡面嘗試視覺化自己的資料的童鞋應該不太夠用 rz。

因緣際會,在尋尋覓覓 team 上可以用的 cloud notebook 資源的時候找到了 Azure Notebook 平台 (https://notebooks.azure.com/) ,對公開的分享來說真的很方便而且目前應該是不收費 (https://notebooks.azure.com/faq)。在上面要做視覺化的時候找到了教學 (https://moderndata.plot.ly/using-plotly-in-jupyter-notebooks-on-microsoft-azure/)(至於為何不繼續用的原因是:目前不支援 private group sharing,跟其他 MS 的 ML 產品有 workspace 概念不太一樣,汗)

廢話說得太多了所以覆蓋 notebook library 連結結束這回合(不是)https://notebooks.azure.com/anon-sjnz2a/libraries/ichisharing

步驟講解

1. import 要用的東西

小提醒:在 MS 的服務上直接用 package 的時候都要記得檢查版本不然會嚇一跳喔~想說 doc 上有的怎麼無法用,或是 notebook 會動的搬到 ML studio UI module 就爛掉(明明都在同個 workspace 版本也是會不一樣的喔,嚇到你了吧 :D)

2. 找個 data 畫

找經典 iris 做做 PCA 降到三維(人家原本也才四維…),降到 3 是為了畫很酷的 3D 可互動圖,私心 ❤

3. 畫圖:在 figure 裡給點 data 跟 layout

4. 成品

這個 Gif 有點失控,只是示意這孩子是可以互動的,實體請到 notebook 上做互動。

5. 存檔

存檔這件事非常有趣,html檔是容易的,如下圖。
但是要存成 png/svg 的話,在 offline 下的 image 參數是等到打開 html file 才會開始下載。(https://plot.ly/python/static-image-export/)
可以用 py.image 但是會噴沒有認證 Error 囉~畢竟就不是 offline 了。

(PlotlyRequestError: You must be authenticated to generate an image via json.)

後記

沒想到只是記錄個簡單的筆記也可以為了寫 sample code, 錄 gif, 考證一些久遠的踩雷記憶而弄這麼久Q

先寫 plot.ly 是因為接下來要寫 Redash~
Redash 這個 dashboard 服務有用到 plot.ly喔,雖然對 user 來說是不用寫 plot.ly code的那部分 :D
對,就是拖拖拉拉的那部分~ヽ( ° ▽°)ノ

歡迎留言好用的視覺化工具呦!

--

--

Ichi Tsai
Ichi’s Dev Blog

A proactive and helpful individual who values integrity above all else. Have both backend engineering experience and project management skills.