首頁  >  文章  >  後端開發  >  一行 Python 程式碼輕鬆建立樹狀熱力學圖

一行 Python 程式碼輕鬆建立樹狀熱力學圖

WBOY
WBOY轉載
2023-04-19 15:17:241853瀏覽

一行 Python 程式碼輕鬆建立樹狀熱力學圖

今天和大家一起學習一種視覺化技術:建立樹狀熱圖treemap。樹形圖易於視覺化,且易於被理解。樹狀圖透過展示不同大小的矩形,以傳達不同大小的資料量,一般認為,較大的矩形意味著佔總體的一大部分,而較小的矩形意味著整體的一小部分。在本文中,雲朵君將和大家一起學習如何使用Squarify函式庫在 Python 中建立樹形圖。

介紹

樹狀圖使用嵌套在一起的不同大小的矩形來視覺化分層資料。每個矩形的大小與其所代表的整體資料量成正比。這些嵌套的矩形代表樹的分支,因此得名。除了尺寸外,每個矩形都有代表獨特類別的獨特顏色。樹狀圖廣泛用於從金融機構到銷售組織的行業。

樹形圖最早是在 1990 年代早期由美國馬裡蘭大學人機互動實驗室的 Ben Shneiderman 教授發明的。這種視覺化背後的想法是在固定空間中按大小比較數量。現在,我們將看看如何實際建立詞雲。

一行 Python 程式碼輕鬆建立樹狀熱力學圖

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

使用Squarify 建立樹狀圖

Python 中的,可以使用Squarify 直接建立樹狀圖。而且只需要一行程式碼squarify.plot(data)即可輕鬆建置。

1. 安裝必要的庫

!pip install squarify

2. 導入必要的庫

import matplotlib.pyplot as plt
import squarify

3. 建立隨機資料

隨機產生一個值列表,這些值將作為資料傳遞到我們的繪圖中。

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()

在執行此程式碼時,我們得到:

一行 Python 程式碼輕鬆建立樹狀熱力學圖

每次執行此程式碼時,它都會產生一組隨機顏色的嵌套矩形。

使用附加參數

借助 .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()

在執行此程式碼時,我們得到:

一行 Python 程式碼輕鬆建立樹狀熱力學圖

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()

在執行此程式碼時,我們得到:

一行 Python 程式碼輕鬆建立樹狀熱力學圖

#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()

在執行程式碼時,我們得到:

一行 Python 程式碼輕鬆建立樹狀熱力學圖

#寫在最後

#由此看來,建立樹狀圖可謂是小菜一碟。除了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 工具可用於更方便簡單地建立樹狀圖。

有時,樹狀圖中可能會出現歧義。如果有多個具有相同數量(或矩形大小)和相同顏色深淺的類別,則導致使用者最終很難區分它們。所以在建立樹狀圖時,必須始終考慮所涉及的類別數量和顏色映射。

以上是一行 Python 程式碼輕鬆建立樹狀熱力學圖的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:51cto.com。如有侵權,請聯絡admin@php.cn刪除