官术网_书友最值得收藏!

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)的透明度。

主站蜘蛛池模板: 皋兰县| 杭锦旗| 侯马市| 延边| 贵南县| 驻马店市| 苍山县| 萍乡市| 太白县| 木里| 讷河市| 开原市| 宜章县| 通河县| 论坛| 南木林县| 桂平市| 凌海市| 潮州市| 蕉岭县| 龙南县| 大田县| 漳州市| 镇赉县| 赣州市| 大宁县| 浦东新区| 衡南县| 姜堰市| 江达县| 民乐县| 安化县| 蓬安县| 防城港市| 义乌市| 黎城县| 同江市| 沿河| 北海市| 斗六市| 郓城县|