一行 Python 代码轻松构建树状热力图
今天和大家一起學習一種可視化技術:構建樹狀熱力圖treemap。樹形圖易于可視化,且易于被人理解。樹狀圖通過展示不同大小的矩形,以傳達不同大小的數據量,一般認為,較大的矩形意味著占總體的一大部分,而較小的矩形意味著整體的一小部分。在本文中,云朵君將和大家一起學習如何使用Squarify庫在 Python 中構建樹形圖。
介紹
樹狀圖使用嵌套在一起的不同大小的矩形來可視化分層數據。每個矩形的大小與其代表的整體數據量成正比。這些嵌套的矩形代表樹的分支,因此得名。除了尺寸外,每個矩形都有代表獨特類別的獨特顏色。樹狀圖廣泛用于從金融機構到銷售組織的行業。
樹形圖最早是在 1990 年代早期由美國馬里蘭大學人機交互實驗室的 Ben Shneiderman 教授發明的。這種可視化背后的想法是在固定空間中按大小比較數量。現在,我們將看看如何實際構建詞云。
佛羅里達州的樹狀圖 來源:https://commons.wikimedia.org使用 Squarify 構建樹狀圖
Python 中的,可以使用 Squarify 直接構建樹狀圖。且只需要一行代碼squarify.plot(data)即可輕松構建。
1. 安裝必要的庫
!pip?install?squarify2. 導入必要的庫
import?matplotlib.pyplot?as?plt import?squarify3. 創建隨機數據
隨機生成一個值列表,這些值將作為數據傳遞到我們的繪圖中。
data?=?[500,?250,?60,?120]4. 繪制樹狀圖
使用**squarify.plot()** 方法構建樹狀圖。這里將隨機數據變量data作為此 squarify.plot 方法的參數。此外,附加一行修飾代碼 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()在執行此代碼時,我們得到:
每次執行此代碼時,它都生成一組隨機顏色的嵌套矩形。
使用附加參數
借助 .plot() 方法的參數,可以在樹狀圖中添加更多的修飾。可以通過明確指定屬性來控制樹形圖的顏色、標簽和填充。
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()在執行此代碼時,我們得到:
2.給樹狀圖添加標簽
不同的標簽值可以通過將列表傳遞到 squarify.plot() 的標簽屬性來顯式添加標簽。這將覆蓋現有標簽或將標簽添加到我們的樹狀圖中(如果不存在)。標簽將按照.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()在執行此代碼時,我們得到:
3. 樹狀圖中的pad
可以在樹狀圖中添加pad,將樹狀圖中的每個具體彼此分離,這將有助于更好地區分矩形。當有大量類別或矩形時,這很有用。可以通過將pad參數設置為True來調用。
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()在執行代碼時,我們得到:
寫在最后
由此看來,構建樹形圖可謂是小菜一碟。除了squarify 庫,樹狀圖還可以使用 Python 中的其他幾個庫來構建。如比較流行的plotly庫。在今天的次條推文中介紹了其應用案例,感興趣的小伙伴可以看看。
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,))當然,還有許多 BI 工具可用于更加方便簡單地構建樹狀圖。
有時,樹狀圖中可能會出現歧義。如果有多個具有相同數量(或矩形大小)和相同顏色深淺的類別,則導致用戶最終很難區分它們。所以在構建樹狀圖時,必須始終考慮所涉及的類別數量和顏色映射。
-?END -
對比Excel系列圖書累積銷量達15w冊,讓你輕松掌握數據分析技能,可以在全網搜索書名進行了解選購:總結
以上是生活随笔為你收集整理的一行 Python 代码轻松构建树状热力图的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 幽灵虎和迅捷幽灵虎有什么区别
- 下一篇: sova空调是什么牌子(瓦罗兰特sova