- Python數(shù)據(jù)分析:基于Plotly的動(dòng)態(tài)可視化繪圖
- 孫洋洋等
- 959字
- 2019-10-21 11:58:29
2.4 氣泡圖
氣泡圖的實(shí)現(xiàn)方法與散點(diǎn)圖的實(shí)現(xiàn)方法類似,修改散點(diǎn)圖中的點(diǎn)的大小,就變成了氣泡圖。
2.4.1 基本案例
下面的代碼(見(jiàn)文件bubble_basic_demo.py)用來(lái)說(shuō)明氣泡圖的基本繪制方法。
import plotly as py import plotly.graph_objs as go # ----------pre def pyplt = py.offline.plot # ----------code trace0 = go.Scatter( x=[1, 2, 3, 4], y=[10, 11, 12, 13], mode='markers', marker=dict( size=[40, 60, 80, 100], ) ) data = [trace0] pyplt(data, filename='tmp/bubble_baisc_demo.html')
代碼運(yùn)行結(jié)果如圖2-7所示。

圖2-7 代碼運(yùn)行結(jié)果
以上代碼的核心代碼如下,用來(lái)定義每一個(gè)點(diǎn)的大?。?/p>
marker=dict( size=[40, 60, 80, 100], )
2.4.2 樣式設(shè)置
下面的代碼(見(jiàn)文件bubble_style.py)用來(lái)指定每個(gè)點(diǎn)的大小、顏色、懸浮文字和是否顯示顏色條。
import plotly as py import plotly.graph_objs as go # ----------pre def pyplt = py.offline.plot # ----------code trace0 = go.Scatter( x=[1, 2, 3, 4], y=[10, 11, 12, 13], mode='markers', text=['A<br>size: 40', 'B<br>size: 60', 'C<br>size: 80', 'D<br>size: 100'], marker=dict( color= [120, 125, 130, 135], opacity=[1, 0.8, 0.6, 0.4], size=[40, 60, 80, 100], showscale= True, ) ) data = [trace0] pyplt(data, filename='tmp/bubble_style.html')
代碼運(yùn)行結(jié)果如圖2-8所示。

圖2-8 代碼運(yùn)行結(jié)果
以上代碼的核心代碼如下,text指定每個(gè)點(diǎn)對(duì)應(yīng)的懸浮文字(<br>表示換行),color指定每個(gè)點(diǎn)的顏色,opacity指定每個(gè)點(diǎn)的透明度,size指定每個(gè)點(diǎn)的大小,showscale=True表示顯示右邊的顏色條的大小。
text=['A<br>size: 40', 'B<br>size: 60', 'C<br>size: 80', 'D<br>size: 100'], marker=dict( color=['rgb(93, 164, 214)', 'rgb(255, 144, 14)', 'rgb(44, 160, 101)', 'rgb(255, 65, 54)'], opacity=[1, 0.8, 0.6, 0.4], size=[40, 60, 80, 100], showscale= True, )
2.4.3 縮放設(shè)置
調(diào)節(jié)氣泡尺寸的大小可通過(guò)sizeref參數(shù)進(jìn)行設(shè)置,當(dāng)sizeref值大于1時(shí),將減小氣泡的大??;當(dāng)sizeref值小于1時(shí),將增大氣泡的大小,詳情參考頁(yè)面https://plot.ly/python/reference/#scatter-marker-sizeref。本案例代碼(見(jiàn)文件bubble_scale.py)如下。
import plotly as py import plotly.graph_objs as go # ----------pre def pyplt = py.offline.plot # ----------code trace0 = go.Scatter( x=[1, 2, 3, 4], y=[10, 11, 12, 13], text=['A</br>size: 40</br>default', 'B</br>size: 60</br>default', 'C</br>size: 80</br>default', 'D</br>size: 100</br>default'], mode='markers', name='default', marker=dict( size=[400, 600, 800, 1000], sizemode='area', ) ) trace1 = go.Scatter( x=[1, 2, 3, 4], y=[14, 15, 16, 17], text=['A</br>size: 40</br>sizeref: 0.2', 'B</br>size: 60</br>sizeref: 0.2', 'C</br>size: 80</br>sizeref: 0.2', 'D</br>size: 100</br>sizeref: 0.2'], mode='markers', name = 'ref0.2', marker=dict( size=[400, 600, 800, 1000], sizeref=0.2, sizemode='area', ) ) trace2 = go.Scatter( x=[1, 2, 3, 4], y=[20, 21, 22, 23], text=['A</br>size: 40</br>sizeref: 2', 'B</br>size: 60</br>sizeref: 2', 'C</br>size: 80</br>sizeref: 2', 'D</br>size: 100</br>sizeref: 2'], mode='markers', name='ref2', marker=dict( size=[400, 600, 800, 1000], sizeref=2, sizemode='area', ) ) data = [trace0, trace1, trace2] pyplt(data, filename='tmp/bubble_scale.html')
代碼運(yùn)行結(jié)果如圖2-9所示。

圖2-9 代碼運(yùn)行結(jié)果
與之前的代碼相比,多了如下參數(shù)內(nèi)容:參數(shù)sizeref=2表示將氣泡大小設(shè)置為原來(lái)的1/2;參數(shù)sizemode有diameter和area兩個(gè)值,diameter表示按直徑縮放,area表示按面積縮放,這里使用的是按面積縮放。
marker=dict( size=[400, 600, 800, 1000], sizeref=2, sizemode='area', )
2.4.4 參數(shù)解讀
氣泡圖與散點(diǎn)圖使用的是同一個(gè)函數(shù),因此大部分參數(shù)在2.3.4小節(jié)已經(jīng)介紹過(guò)了,這里對(duì)本節(jié)所涉及的參數(shù)進(jìn)行補(bǔ)充說(shuō)明。
●text:列表,元素為相應(yīng)節(jié)點(diǎn)的懸浮文字內(nèi)容。
●marker:數(shù)據(jù)節(jié)點(diǎn)參數(shù),包括大小、顏色、格式等,有如下設(shè)置項(xiàng)。
?size:列表,元素為相應(yīng)節(jié)點(diǎn)的尺寸大小。
?sizeref:縮放的比例,如設(shè)置為2,則縮小為原來(lái)的1/2。
?sizemode:縮放的標(biāo)準(zhǔn),默認(rèn)以diameter(直徑)縮放,也可選擇以area(面積)縮放。
?color:列表,元素為相應(yīng)節(jié)點(diǎn)的顏色。
?showscale:默認(rèn)為False,不顯示右側(cè)的顏色條,也可以選擇True。
?opacity:列表,元素為0~1之間的數(shù),表示相應(yīng)節(jié)點(diǎn)的透明度。
- 數(shù)據(jù)可視化:從小白到數(shù)據(jù)工程師的成長(zhǎng)之路
- 云計(jì)算環(huán)境下的信息資源集成與服務(wù)
- 算法與數(shù)據(jù)中臺(tái):基于Google、Facebook與微博實(shí)踐
- 數(shù)據(jù)架構(gòu)與商業(yè)智能
- 企業(yè)級(jí)數(shù)據(jù)與AI項(xiàng)目成功之道
- 智慧城市中的大數(shù)據(jù)分析技術(shù)
- 大數(shù)據(jù)與機(jī)器學(xué)習(xí):實(shí)踐方法與行業(yè)案例
- Hands-On System Programming with C++
- 數(shù)據(jù)中心經(jīng)營(yíng)之道
- 大數(shù)據(jù)技術(shù)體系詳解:原理、架構(gòu)與實(shí)踐
- Oracle 11g數(shù)據(jù)庫(kù)管理與開(kāi)發(fā)基礎(chǔ)教程
- 數(shù)據(jù)會(huì)說(shuō)話:活用數(shù)據(jù)表達(dá)、說(shuō)服與決策
- Managing Software Requirements the Agile Way
- Unity 4.x Game AI Programming
- 數(shù)據(jù)分析實(shí)踐:專業(yè)知識(shí)和職場(chǎng)技巧