2.4 气泡图
气泡图的实现方法与散点图的实现方法类似,修改散点图中的点的大小,就变成了气泡图。
2.4.1 基本案例
下面的代码(见文件bubble_basic_demo.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], mode='markers', marker=dict( size=[40, 60, 80, 100], ) ) data = [trace0] pyplt(data, filename='tmp/bubble_baisc_demo.html')
代码运行结果如图2-7所示。
图2-7 代码运行结果
以上代码的核心代码如下,用来定义每一个点的大小:
marker=dict( size=[40, 60, 80, 100], )
2.4.2 样式设置
下面的代码(见文件bubble_style.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], 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')
代码运行结果如图2-8所示。
图2-8 代码运行结果
以上代码的核心代码如下,text指定每个点对应的悬浮文字(<br>表示换行),color指定每个点的颜色,opacity指定每个点的透明度,size指定每个点的大小,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 缩放设置
调节气泡尺寸的大小可通过sizeref参数进行设置,当sizeref值大于1时,将减小气泡的大小;当sizeref值小于1时,将增大气泡的大小,详情参考页面https://plot.ly/python/reference/#scatter-marker-sizeref。本案例代码(见文件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')
代码运行结果如图2-9所示。
图2-9 代码运行结果
与之前的代码相比,多了如下参数内容:参数sizeref=2表示将气泡大小设置为原来的1/2;参数sizemode有diameter和area两个值,diameter表示按直径缩放,area表示按面积缩放,这里使用的是按面积缩放。
marker=dict( size=[400, 600, 800, 1000], sizeref=2, sizemode='area', )
2.4.4 参数解读
气泡图与散点图使用的是同一个函数,因此大部分参数在2.3.4小节已经介绍过了,这里对本节所涉及的参数进行补充说明。
●text:列表,元素为相应节点的悬浮文字内容。
●marker:数据节点参数,包括大小、颜色、格式等,有如下设置项。
➢size:列表,元素为相应节点的尺寸大小。
➢sizeref:缩放的比例,如设置为2,则缩小为原来的1/2。
➢sizemode:缩放的标准,默认以diameter(直径)缩放,也可选择以area(面积)缩放。
➢color:列表,元素为相应节点的颜色。
➢showscale:默认为False,不显示右侧的颜色条,也可以选择True。
➢opacity:列表,元素为0~1之间的数,表示相应节点的透明度。