国产一区二区精品-国产一区二区精品久-国产一区二区精品久久-国产一区二区精品久久91-免费毛片播放-免费毛片基地

千鋒教育-做有情懷、有良心、有品質的職業教育機構

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

關注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術干貨  > sns.heatmap詳解

sns.heatmap詳解

來源:千鋒教育
發布人:xqq
時間: 2023-11-23 00:24:48 1700670288

一、sns.heatmap參數

sns.heatmap是一個數據可視化函數,用于繪制矩陣數據的熱圖。它有很多參數可以用于調整圖形樣式和呈現方式。這里介紹幾個常用的參數:

import seaborn as sns
import pandas as pd
import numpy as np

df = pd.DataFrame(np.random.randn(10, 10))

sns.heatmap(df, cmap='coolwarm', annot=True, fmt='.2f', linewidths=.5)

1. data: 需要展示的數據,可以是DataFrame或numpy數組

2. cmap: 顏色映射表,設置熱圖的顏色主題。它可以是內置顏色映射表(如'coolwarm'、'viridis'、'mako'、'rocket'、'copper'等),也可以是自定義的顏色列表

3. annot: 是否顯示每個單元格的數值

4. fmt: 數值格式,用于控制annot參數輸出數值的格式

5. linewidths: 熱圖中每個矩形之間的間隔線寬度

二、sns.heatmap合并顏色帶

熱圖中的顏色帶用于表示數據值的大小,不同的顏色帶代表不同的數據范圍。有時候,可能需要將兩個熱圖的顏色帶合并為一個顏色帶,以便進行比較。sns.heatmap提供了vmin和vmax參數,用于將不同數據范圍內的顏色值映射到相同的顏色帶上。

df1 = pd.DataFrame(np.random.randn(10, 10))
df2 = pd.DataFrame(np.random.randn(10, 10))

plt.figure(figsize=(8, 6))

plt.subplot(1, 2, 1)
sns.heatmap(df1, cmap='coolwarm', annot=True, fmt='.2f', linewidths=.5)

plt.subplot(1, 2, 2)
sns.heatmap(df2, cmap='coolwarm', annot=True, fmt='.2f', linewidths=.5, vmin=-1, vmax=1)

plt.show()

2個熱圖顏色帶合并之前:

2個熱圖顏色帶合并之后:

三、sns.heatmap函數

sns.heatmap函數可以接收一些關鍵字參數,用于控制熱圖的外觀和響應式。例如,我們可以使用xticklabels和yticklabels參數來更改X和Y軸上的標簽。

df = pd.DataFrame(np.random.randn(10, 10), columns=[f'col{i}' for i in range(10)], 
                  index=[f'row{i}' for i in range(10)])

sns.heatmap(df, cmap='coolwarm', annot=True, fmt='.2f', linewidths=.5, xticklabels=[f'col{i}' for i in range(10)],
           yticklabels=[f'row{i}' for i in range(10)])

plt.show()

熱圖外觀控制示例圖:

四、sns.heatmap作用

sns.heatmap函數主要用于可視化矩陣數據的熱圖,用不同的顏色表示數據的大小,顏色越亮則表示數據越大,顏色越暗則表示數據越小。

例如,設置顏色映射表為'coolwarm',則大于0的數值顯示為紅色,小于0的數值顯示為藍色,0的數值顯示為中間的白色。

df = pd.DataFrame(np.random.randn(10, 10))

sns.heatmap(df, cmap='coolwarm', annot=True, fmt='.2f', linewidths=.5)

plt.show()

熱圖應用示例圖:

五、sns.heatmap字體大小

sns.heatmap函數可以設置字體的大小,通過修改字體的大小,我們可以讓熱圖更加美觀,易于閱讀。

df = pd.DataFrame(np.random.randn(10, 10))

sns.heatmap(df, cmap='coolwarm', annot=True, fmt='.2f', linewidths=.5, annot_kws={'size': 12})

plt.show()

熱圖字體大小示例圖:

六、sns.heatmap中文列名

sns.heatmap函數默認使用英文字母作為列名,但是有時候我們需要使用中文作為列名,這時候需要更改列名并設置xticklabels參數。

df = pd.DataFrame(np.random.randn(10, 10), columns=[f'列{i}' for i in range(10)])

sns.heatmap(df, cmap='coolwarm', annot=True, fmt='.2f', linewidths=.5, 
            xticklabels=df.columns, yticklabels=[f'行{i}' for i in range(10)],)

plt.show()

熱圖中文列名示例圖:

七、sns.heatmap中文標題

sns.heatmap函數可以設置熱圖的標題,根據熱圖的應用場景,設置對應的標題顯得更為嚴謹。

df = pd.DataFrame(np.random.randn(10, 10), columns=[f'col{i}' for i in range(10)], 
                  index=[f'row{i}' for i in range(10)])

plt.figure(figsize=(8, 6))

sns.heatmap(df, cmap='coolwarm', annot=True, fmt='.2f', linewidths=.5, xticklabels=[f'col{i}' for i in range(10)],
           yticklabels=[f'row{i}' for i in range(10)])

plt.title('熱圖示例', fontsize=16)
plt.show()

熱圖中文標題示例圖:

八、sns.heatmap共用顏色條

如果在同一畫布上繪制多個熱圖,可能需要共用相同的顏色條。sns.heatmap函數提供了cbar參數來實現。

df1 = pd.DataFrame(np.random.randn(10, 10))
df2 = pd.DataFrame(np.random.randn(10, 10))

plt.figure(figsize=(8, 6))

plt.subplot(1, 2, 1)
sns.heatmap(df1, cmap='coolwarm', annot=True, fmt='.2f', linewidths=.5)

plt.subplot(1, 2, 2)
sns.heatmap(df2, cmap='coolwarm', annot=True, fmt='.2f', linewidths=.5, cbar=False)

plt.subplots_adjust(wspace=0.5)

plt.show()

多個熱圖共用顏色條示例圖:

九、sns.heatmap標記目標值

我們可以使用mask參數來標記矩陣的某些區域。例如,標記所有小于0的值為紅色,大于等于0的值為綠色。

df = pd.DataFrame(np.random.randn(10, 10))

mask = np.zeros_like(df)
mask[df < 0] = True

sns.heatmap(df, cmap='coolwarm', annot=True, fmt='.2f', linewidths=.5, mask=mask)

plt.show()

熱圖標記目標值示例圖:

十、sns.heatmap cmap選取

cmap是sns.heatmap函數中的一個參數,用于指定顏色映射表。不同的顏色映射表可以反映不同的數據特征,選擇合適的顏色映射表非常重要。matplotlib提供了一些內置的顏色映射表,包括'viridis'、'plasma'、'inferno'、'magma'等,可以根據數據特點來選取合適的顏色映射表。

df = pd.DataFrame(np.random.randn(10, 10))

plt.figure(figsize=(8, 6))

plt.subplot(2, 2, 1)
sns.heatmap(df, cmap='viridis', annot=True, fmt='.2f', linewidths=.5)

plt.subplot(2, 2, 2)
sns.heatmap(df, cmap='plasma', annot=True, fmt='.2f', linewidths=.5)

plt.subplot(2, 2, 3)
sns.heatmap(df, cmap='inferno', annot=True, fmt='.2f', linewidths=.5)

plt.subplot(2, 2, 4)
sns.heatmap(df, cmap='magma', annot=True, fmt='.2f', linewidths=.5)

plt.subplots_adjust(wspace=0.5, hspace=0.5)

plt.show()

不同顏色映射表的示例圖:

tags: sns.heatmap
聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。
10年以上業內強師集結,手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內將與您1V1溝通
免費領取
今日已有369人領取成功
劉同學 138****2860 剛剛成功領取
王同學 131****2015 剛剛成功領取
張同學 133****4652 剛剛成功領取
李同學 135****8607 剛剛成功領取
楊同學 132****5667 剛剛成功領取
岳同學 134****6652 剛剛成功領取
梁同學 157****2950 剛剛成功領取
劉同學 189****1015 剛剛成功領取
張同學 155****4678 剛剛成功領取
鄒同學 139****2907 剛剛成功領取
董同學 138****2867 剛剛成功領取
周同學 136****3602 剛剛成功領取
相關推薦HOT