野路子码农系列(3)plotly可视化的简单套路
又雙叒叕要跟客戶匯報(bào)了,圖都準(zhǔn)備好了嗎?matplotlib出圖嫌丑?那用用plotly吧,讓你的圖看上去經(jīng)費(fèi)爆炸~
?
P1?起因
第一次接觸plotly這個(gè)庫(kù)是在我們做的一個(gè)列車(chē)信號(hào)數(shù)據(jù)挖掘的項(xiàng)目里,當(dāng)時(shí)用下來(lái)總覺(jué)得有些云里霧里的,感覺(jué)非常不方便,API也不熟悉。后來(lái)又在別的項(xiàng)目上摸索了幾次,突然發(fā)現(xiàn)這個(gè)庫(kù)套路還是很清晰的,可能我對(duì)官方教程的理解還不太透徹。于是我打算把自己摸索出來(lái)的內(nèi)容寫(xiě)下來(lái)。本文僅針對(duì)離線繪圖,即使用 plotly.offline.iplot(fig) 繪圖。
?
P2?整體框架
首先我們導(dǎo)入一些必要的內(nèi)容:
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中發(fā)現(xiàn)你的圖無(wú)法顯示,或者一篇空白,請(qǐng)檢查右上角是否為"Trusted"狀態(tài),不是話點(diǎn)一下,將其轉(zhuǎn)為T(mén)rusted,如還不顯示,就試試Ctrl+F5強(qiáng)制刷新。
官方的教程主要是基于一個(gè)個(gè)單獨(dú)的實(shí)例,不太容易舉一反三。但其實(shí)plotly的套路非常簡(jiǎn)單樸實(shí)。
總體來(lái)說(shuō),當(dāng)我們繪制一張圖時(shí),我們需要通過(guò)一個(gè)go.Figure實(shí)例,我們可以把它當(dāng)做畫(huà)布。在go.Figure中,有2個(gè)東西十分重要,一個(gè)是data,主要是我們的數(shù)據(jù);另一個(gè)是layout,關(guān)乎圖面布局。
data傳入的是一個(gè)列表,里面可以包含一組或多組數(shù)據(jù),每一組數(shù)據(jù)被封裝在一個(gè)圖形實(shí)例中,比如go.Scatter(線圖)或者go.Heatmap(熱力圖),每個(gè)圖形實(shí)例中都包含了數(shù)據(jù)本身,以及和數(shù)據(jù)相關(guān)的某些繪圖屬性。
layout傳入的則是一個(gè)go.Layout實(shí)例,我們可以為其增加不同的屬性來(lái)實(shí)現(xiàn)對(duì)圖面布局的控制。
而當(dāng)我們需要分圖時(shí),我們會(huì)使用tools.make_subplots(),并通過(guò)append_trace()來(lái)將data貼進(jìn)不同的分圖,其他都是大同小異,依舊使用layout來(lái)控制圖面。
?
P3?示例代碼
我分別針對(duì)最常用的幾種圖:線圖、條形圖、地圖和熱力圖寫(xiě)了一些示例代碼,詳見(jiàn):
https://nbviewer.jupyter.org/github/SilenceGTX/plotly_demo/blob/bbb1fdbc6ee9706cbbbacc5f72444e6f4111b346/plotly_visualization_Demo.ipynb
?
轉(zhuǎn)載于:https://www.cnblogs.com/silence-gtx/p/10667131.html
總結(jié)
以上是生活随笔為你收集整理的野路子码农系列(3)plotly可视化的简单套路的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: P1433 吃奶酪 回溯法 优化
- 下一篇: Android的Intent你知道多少?