野路子碼農系列(3)plotly可視化的簡單套路

又雙叒叕要跟客戶彙報了,圖都準備好了嗎?matplotlib出圖嫌醜?那用用plotly吧,讓你的圖看上去經費爆炸~git

 

P1 原由github

第一次接觸plotly這個庫是在咱們作的一個列車信號數據挖掘的項目裏,當時用下來總以爲有些雲裏霧裏的,感受很是不方便,API也不熟悉。後來又在別的項目上摸索了幾回,忽然發現這個庫套路仍是很清晰的,可能我對官方教程的理解還不太透徹。因而我打算把本身摸索出來的內容寫下來。本文僅針對離線繪圖,即便用 plotly.offline.iplot(fig) 繪圖。app

 

P2 總體框架框架

首先咱們導入一些必要的內容:佈局

import plotly
from plotly.offline import download_plotlyjs, init_notebook_mode, plot, iplot
import plotly.graph_objs as go
from plotly import tools
init_notebook_mode(connected=True)

若是你在Jupyter Notebook中發現你的圖沒法顯示,或者一篇空白,請檢查右上角是否爲"Trusted"狀態,不是話點一下,將其轉爲Trusted,如還不顯示,就試試Ctrl+F5強制刷新。spa

官方的教程主要是基於一個個單獨的實例,不太容易觸類旁通。但其實plotly的套路很是簡單樸實。code

整體來講,當咱們繪製一張圖時,咱們須要經過一個go.Figure實例,咱們能夠把它當作畫布。在go.Figure中,有2個東西十分重要,一個是data,主要是咱們的數據;另外一個是layout,關乎圖面佈局。blog

data傳入的是一個列表,裏面能夠包含一組或多組數據,每一組數據被封裝在一個圖形實例中,好比go.Scatter(線圖)或者go.Heatmap(熱力圖),每一個圖形實例中都包含了數據自己,以及和數據相關的某些繪圖屬性。教程

layout傳入的則是一個go.Layout實例,咱們能夠爲其增長不一樣的屬性來實現對圖面佈局的控制。ip

而當咱們須要分圖時,咱們會使用tools.make_subplots(),並經過append_trace()來將data貼進不一樣的分圖,其餘都是大同小異,依舊使用layout來控制圖面。

 

P3 示例代碼

我分別針對最經常使用的幾種圖:線圖、條形圖、地圖和熱力圖寫了一些示例代碼,詳見:

https://nbviewer.jupyter.org/github/SilenceGTX/plotly_demo/blob/bbb1fdbc6ee9706cbbbacc5f72444e6f4111b346/plotly_visualization_Demo.ipynb

相關文章
相關標籤/搜索