今天來講講如何使用Python 繪圖工具,Plotly來繪制氣泡圖。
氣泡圖的實現方法類似散點圖的實現。修改散點圖中點的大小,就變成氣泡圖。
實現代碼如下:
import plotly as py import plotly.graph_objs as go pyplt = py.offline.plot trace0 = go.Scatter( x=[1, 2, 3, 4, 5, 6, 7], y=[8, 10, 12, 14, 16, 18, 20], mode='markers', marker=dict( size=[10, 14, 16, 18, 20, 42, 64], #設置氣泡大小 ) ) data = [trace0] pyplt(data, filename='tmp/1.html')
會得到如下圖所示的氣泡圖:
下面這個例子講解如何設置氣泡點的大小,顏色,還有提示文字,是否顯示顏色條等信息
代碼如下:
import plotly as py import plotly.graph_objs as go pyplt = py.offline.plot trace0 = go.Scatter( x=[1, 2, 3, 4], y=[10, 11, 12, 13], mode='markers', text=['第1個氣泡<br>size: 40<br>這里可以填寫內容', '第2個氣泡<br>size: 60', '第3個氣泡<br>size: 80', '第4個氣泡<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/1.html')
運行程序,得到如下圖所示:
說明一下。
text可以指定每一個點,對應的懸浮窗文字信息(<br>表示換行)
color指定每個點的顏色,opacity指定點的透明度大小。
size 指定每個點的大小
showscale = True 表示顯示右邊的顏色條。
接下來講解如何將氣泡圖進行縮放
調節大小通過設置參數sizeref進行設置的,當這個參數大於1時,將會減小氣泡的大小。
當這個參數小於1時,將增大氣泡的大小。
import plotly as py import plotly.graph_objs as go pyplt = py.offline.plot 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/1.html')
得到如下圖所示:
參數sizeref=2 將氣泡的大小設置為原來的1/2
參數sizemodes有兩個值1.diameter和area這兩個值。
1值按照直徑縮放,2值按照表示面積進行縮放。