如何在 Python 中使用 seaborn 在熱力圖單元格註釋中新增文字?


熱力圖可用於識別資料中的模式和趨勢,並且可以透過向單元格添加註釋(例如文字標籤或數值)來進一步自定義,這些註釋可以提供有關資料的更多資訊。在本文中,我們將討論如何在 Python 中使用 Seaborn 在熱力圖單元格註釋中新增文字。我們將探討 Seaborn 中可用於自定義文字註釋的不同方法和選項,例如更改文字的字型大小、顏色和格式。

熱力圖

熱力圖是一種資料視覺化,其中現象的強度在二維圖形上用不同的顏色表示。顏色可以變化色調或飽和度,以向讀者展示現象在時間和地點上的聚類或變化位置。熱力圖主要分為兩類:聚類熱力圖和空間熱力圖。

聚類熱力圖在固定大小的單元格矩陣中組織幅度,其中現象和類別顯示為行和列。聚類的目的是透過統計研究來暗示或顯示,因此行和列的排序是經過深思熟慮的,並且有些隨機性。單元格的尺寸完全是隨機的,但足夠大以保證易讀性。空間熱力圖中沒有單元格的概念,並且現象被視為持續變化的,因此幅度的位置由其在該空間中的位置決定。

Seaborn

Seaborn 是一個 Python 包,用於根據資料建立圖表和圖形。它使用 matplotlib 作為其基礎,並且與 pandas 庫配合使用良好。

Seaborn 有助於資料發現、視覺化和理解。透過使用繪圖方法處理和視覺化包含完整資料集的資料幀和陣列,這些方法隨後執行必要的語義對映和統計聚合,以生成有見地的圖形。藉助其宣告性的、以資料集為中心的 API,您可以專注於圖形元件的含義,而不是渲染它們的細節。

使用 seaborn 建立熱力圖的語法

sns.heatmap(dt, *, vmin=None, vmax=None, cmap=None, center=None, annot_kws=None, linewidths=0, linecolor=’white’, cbar=True, **kwargs)

解釋

序號

屬性

定義

1.

dt

它用於將 2D 資料集轉換為 ndarray。如果提供了使用 pandas 的 DataFrame,則列資料可用於指定行和列。

2.

vamx 和 vmin

它們提供要作為顏色圖起點使用的值。如果未給出,則這些值將從資料和其他關鍵字引數推斷得出。

3.

cmap

它定義了資料值對映到顏色空間的方式。如果您不提供預設值,它將取決於中心是否設定。

4.

center

在繪製不同資料集時,這是要將顏色圖居中的值。如果沒有給出其他引數,則此引數將更改預設的 cmap。

5.

annot

如果 annot 引數的值為真,則在每個熱力圖單元格中寫入資料。

6.

annot_kws

僅當 annot 引數的值為真時,它才定義函式 matplotlib.axes.Axes.text() 的引數。

7.

linewidhts

此引數定義將劃分每個單元格的特定線的寬度。

8.

linecolor

此引數定義將劃分每個單元格的特定線的顏色。

9.

cbar

它定義了我們是否需要繪製顏色條。

在熱力圖單元格註釋中新增文字

可以對熱力圖的行和列進行註釋以提供額外的上下文。annot 選項通常設定為 True 以在熱力圖頂部顯示資料值。

Annot 和 fmt 引數

  • Annot − sns.heatmap() 的 annot(註釋)功能允許您顯示與 Python seaborn 熱力圖中每個單元格關聯的數值。我們可以顯示所選單元格的原始數字,或者根據您的指示傳遞不同的數字。將 True 傳遞給 annot 會導致該值顯示在每個熱力圖單元格中。

  • Fmt − annot 引數僅允許向 Python 熱力圖單元格新增數值,而 fmt 引數允許新增字串(文字)值。

這裡,建立了一個包含字串值的 2D numpy 陣列並將其傳遞給 annot。此外,將字串值“s”傳遞給 fmt。

示例

import numpy as n
import matplotlib.pyplot as p
import seaborn as s

# creating random data using numpy
df = n.array([[11, 12, 13, 14, 15], [16, 17, 18, 19, 20], [21, 22, 23, 24, 25]])

# creating text array using numpy
tx = n.array([['Amy', 'Bryn', 'Calis', 'Daisy', 'Eagel'], ['Fin', 'Garry', 'Hary', 'Ingleis', 'Jack'],
   ['Kim', 'Lasy', 'Mia', 'Nia', 'Olivia']])

# creating subplot
figure, axx = p.subplots()
 
# defining heatmap on current axes using seaborn 
axx = s.heatmap(df, annot=tx, fmt="")

輸出

結論

在本文中,我們瞭解到熱力圖在二維圖形中向我們展示了現象的幅度,並且可以用於資料視覺化。我們已經瞭解瞭如何使用 Python 的庫 Seaborn 來定義熱力圖、其語法以及定義熱力圖的引數。最後,我們已經瞭解瞭如何宣告屬性 annot 和 fmt,透過它們我們可以在熱力圖單元格註釋中新增文字。

更新於: 2023-05-31

1K+ 瀏覽量

開啟你的 職業生涯

透過完成課程獲得認證

立即開始
廣告

© . All rights reserved.