HOWTO · Seaborn

設定 Seaborn 熱圖的大小

本教程介紹如何在 python 中設定 seaborn heatmap 圖的大小

熱圖用於生成矩陣的圖形表示。它在圖形上繪製一個矩陣,併為不同的值使用不同的顏色深淺。

我們可以使用 seaborn.heatmap() 函式在 seaborn 模組中建立熱圖。

在表示大型矩陣時,圖的預設大小可能無法清楚地表示資料。

在本教程中,我們將解決這個問題並學習如何改變 seaborn 熱圖的大小。

由於 heatmap() 返回一個 matplotlib-axes 物件,我們也可以使用該庫中的函式。

使用 seaborn.set() 函式設定 seaborn 熱圖大小

set() 函式定義了 seaborn 繪圖的配置和主題。我們可以在 rc 引數中提及繪圖的大小。

例如,

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

df = pd.DataFrame(
    {
        "Day 1": [7, 1, 5, 6, 3, 10, 5, 8],
        "Day 2": [1, 2, 8, 4, 3, 9, 5, 2],
        "Day 3": [4, 6, 5, 8, 6, 1, 2, 3],
        "Day 4": [5, 8, 9, 5, 1, 7, 8, 9],
    }
)

sns.set(rc={"figure.figsize": (15, 8)})
sns.heatmap(df.corr())

使用 set() 函式的熱圖大小

請注意,rc 引數的值被指定為字典。最終的高度和寬度作為元組傳遞。

使用 matplotlib.pyplot.figure() 函式設定 seaborn 熱圖大小

figure() 函式用於在 Python 中啟動或自定義當前圖形。此圖中繪製了熱圖。可以使用函式中的 figsize 引數更改大小。

例如,

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

df = pd.DataFrame(
    {
        "Day 1": [7, 1, 5, 6, 3, 10, 5, 8],
        "Day 2": [1, 2, 8, 4, 3, 9, 5, 2],
        "Day 3": [4, 6, 5, 8, 6, 1, 2, 3],
        "Day 4": [5, 8, 9, 5, 1, 7, 8, 9],
    }
)


plt.figure(figsize=(15, 8))
sns.heatmap(df.corr())

使用 figure() 函式的熱圖大小

請注意,該函式在 heatmap() 函式之前使用。

使用 matplotlib.pyplot.gcf() 函式設定 seaborn 圖的大小

gcf() 函式返回圖形的檢視例項物件。可以使用 set_size_inches() 方法更改此物件的大小。通過這種方式,我們可以在這個物件上設定熱圖圖的大小。

例如,

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

df = pd.DataFrame(
    {
        "Day 1": [7, 1, 5, 6, 3, 10, 5, 8],
        "Day 2": [1, 2, 8, 4, 3, 9, 5, 2],
        "Day 3": [4, 6, 5, 8, 6, 1, 2, 3],
        "Day 4": [5, 8, 9, 5, 1, 7, 8, 9],
    }
)


sns.heatmap(df.corr())
plt.gcf().set_size_inches(15, 8)

使用 gcf() 函式的熱圖大小

請注意,此方法在 heatmap() 函式之後使用。

另外需要注意的是,在上述所有方法中,熱圖中註釋的大小並沒有受到太大影響。

為了增加註釋的大小,我們需要在 heatmap() 函式中將 annot 引數設定為 True。然後我們可以在 annot_kws 引數中將字型大小指定為鍵值對,如 annot_kws = {'size':15}