<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          一行 Python 代碼輕松構(gòu)建樹狀熱力圖

          共 2440字,需瀏覽 5分鐘

           ·

          2022-04-17 22:06


          今天和大家一起學(xué)習(xí)一種可視化技術(shù):構(gòu)建樹狀熱力圖treemap。樹形圖易于可視化,且易于被人理解。樹狀圖通過展示不同大小的矩形,以傳達不同大小的數(shù)據(jù)量,一般認為,較大的矩形意味著占總體的一大部分,而較小的矩形意味著整體的一小部分。在本文中,云朵君將和大家一起學(xué)習(xí)如何使用Squarify庫在 Python 中構(gòu)建樹形圖

          介紹

          樹狀圖使用嵌套在一起的不同大小的矩形來可視化分層數(shù)據(jù)。每個矩形的大小與其代表的整體數(shù)據(jù)量成正比。這些嵌套的矩形代表樹的分支,因此得名。除了尺寸外,每個矩形都有代表獨特類別的獨特顏色。樹狀圖廣泛用于從金融機構(gòu)到銷售組織的行業(yè)。

          樹形圖最早是在 1990 年代早期由美國馬里蘭大學(xué)人機交互實驗室的 Ben Shneiderman 教授發(fā)明的。這種可視化背后的想法是在固定空間中按大小比較數(shù)量。現(xiàn)在,我們將看看如何實際構(gòu)建詞云。

          佛羅里達州的樹狀圖 來源:https://commons.wikimedia.org

          使用 Squarify 構(gòu)建樹狀圖

          Python 中的,可以使用 Squarify 直接構(gòu)建樹狀圖。且只需要一行代碼squarify.plot(data)即可輕松構(gòu)建。

          1. 安裝必要的庫

          !pip?install?squarify

          2. 導(dǎo)入必要的庫

          import?matplotlib.pyplot?as?plt
          import?squarify

          3. 創(chuàng)建隨機數(shù)據(jù)

          隨機生成一個值列表,這些值將作為數(shù)據(jù)傳遞到我們的繪圖中。

          data?=?[500,?250,?60,?120]?

          4. 繪制樹狀圖

          使用**squarify.plot()** 方法構(gòu)建樹狀圖。這里將隨機數(shù)據(jù)變量data作為此 squarify.plot 方法的參數(shù)。此外,附加一行修飾代碼 plt.axis('off') ?隱藏 樹狀圖 的軸。

          squarify.plot(data)
          plt.axis('off')
          plt.show()

          5. 把它們放在一起

          import?matplotlib.pyplot?as?plt
          import?squarify
          data?=?[500,?250,?60,?120]
          squarify.plot(data)
          plt.axis('off')
          plt.show()

          在執(zhí)行此代碼時,我們得到:

          每次執(zhí)行此代碼時,它都生成一組隨機顏色的嵌套矩形。

          使用附加參數(shù)

          借助 .plot() 方法的參數(shù),可以在樹狀圖中添加更多的修飾。可以通過明確指定屬性來控制樹形圖的顏色、標(biāo)簽和填充。

          1. 指定樹狀圖的顏色

          import?matplotlib.pyplot?as?plt
          import?squarify
          sizes?=?[500,?250,?120,?60]
          color?=?['red',?'green',?'blue',?'orange']
          squarify.plot(sizes,color=color)
          plt.axis('off')
          plt.show()

          在執(zhí)行此代碼時,我們得到:

          2.給樹狀圖添加標(biāo)簽

          不同的標(biāo)簽值可以通過將列表傳遞到 squarify.plot() 的標(biāo)簽屬性來顯式添加標(biāo)簽。這將覆蓋現(xiàn)有標(biāo)簽或?qū)?biāo)簽添加到我們的樹狀圖中(如果不存在)。標(biāo)簽將按照.plot()所傳遞的列表中的相同順序被添加到樹狀圖中。

          import?matplotlib.pyplot?as?plt
          import?squarify
          labels?=?['A',?'AB',?'ABC',?'ABCD']
          sizes?=?[500,?250,?120,?60]
          color?=?['red',?'green',?'blue',?'orange']
          squarify.plot(sizes,color=color,?label?=?labels)
          plt.axis('off')
          plt.show()

          在執(zhí)行此代碼時,我們得到:

          3. 樹狀圖中的pad

          可以在樹狀圖中添加pad,將樹狀圖中的每個具體彼此分離,這將有助于更好地區(qū)分矩形。當(dāng)有大量類別或矩形時,這很有用??梢酝ㄟ^將pad參數(shù)設(shè)置為True來調(diào)用。

          import?matplotlib.pyplot?as?plt
          import?squarify
          labels?=?['AB',?'A',?'ABC',?'ABCD']
          sizes?=?[500,?250,?120,?60]
          color?=?['red',?'green',?'blue',?'orange']
          squarify.plot(sizes,color=color,?label?=?labels,?pad?=?True)
          plt.axis('off')
          plt.show()

          在執(zhí)行代碼時,我們得到:

          寫在最后

          由此看來,構(gòu)建樹形圖可謂是小菜一碟。除了squarify 庫,樹狀圖還可以使用 Python 中的其他幾個庫來構(gòu)建。如比較流行的plotly庫。在今天的次條推文中介紹了其應(yīng)用案例,感興趣的小伙伴可以看看。

          import?plotly_express?as?px
          import?plotly.graph_objects?as?go
          px.treemap(names?=?name,?parents?=?parent)
          go.Figure(go.Treemap(labels?=?name,?parents?=?parent,))

          當(dāng)然,還有許多 BI 工具可用于更加方便簡單地構(gòu)建樹狀圖。

          有時,樹狀圖中可能會出現(xiàn)歧義。如果有多個具有相同數(shù)量(或矩形大?。┖拖嗤伾顪\的類別,則導(dǎo)致用戶最終很難區(qū)分它們。所以在構(gòu)建樹狀圖時,必須始終考慮所涉及的類別數(shù)量和顏色映射。

          END



          推薦閱讀


          牛逼!Python常用數(shù)據(jù)類型的基本操作(長文系列第①篇)

          牛逼!Python的判斷、循環(huán)和各種表達式(長文系列第②篇)

          牛逼!Python函數(shù)和文件操作(長文系列第③篇)

          牛逼!Python錯誤、異常和模塊(長文系列第④篇)


          瀏覽 51
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  美女肏逼久久 | 撸色射撸色 | 天天干天天射天天操 | 日韩人妻无码免费视频 | 成人深爱激情网 |