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

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機構(gòu)

手機站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時隨地免費學(xué)

千鋒教育

掃一掃進(jìn)入千鋒手機站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時隨地免費學(xué)習(xí)課程

當(dāng)前位置:首頁  >  技術(shù)干貨  > sns.heatmap詳解

sns.heatmap詳解

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

一、sns.heatmap參數(shù)

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

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: 需要展示的數(shù)據(jù),可以是DataFrame或numpy數(shù)組

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

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

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

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

二、sns.heatmap合并顏色帶

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

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函數(shù)

sns.heatmap函數(shù)可以接收一些關(guān)鍵字參數(shù),用于控制熱圖的外觀和響應(yīng)式。例如,我們可以使用xticklabels和yticklabels參數(shù)來更改X和Y軸上的標(biāo)簽。

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函數(shù)主要用于可視化矩陣數(shù)據(jù)的熱圖,用不同的顏色表示數(shù)據(jù)的大小,顏色越亮則表示數(shù)據(jù)越大,顏色越暗則表示數(shù)據(jù)越小。

例如,設(shè)置顏色映射表為'coolwarm',則大于0的數(shù)值顯示為紅色,小于0的數(shù)值顯示為藍(lán)色,0的數(shù)值顯示為中間的白色。

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

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

plt.show()

熱圖應(yīng)用示例圖:

五、sns.heatmap字體大小

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

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函數(shù)默認(rèn)使用英文字母作為列名,但是有時候我們需要使用中文作為列名,這時候需要更改列名并設(shè)置xticklabels參數(shù)。

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中文標(biāo)題

sns.heatmap函數(shù)可以設(shè)置熱圖的標(biāo)題,根據(jù)熱圖的應(yīng)用場景,設(shè)置對應(yīng)的標(biāo)題顯得更為嚴(yán)謹(jǐn)。

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

熱圖中文標(biāo)題示例圖:

八、sns.heatmap共用顏色條

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

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標(biāo)記目標(biāo)值

我們可以使用mask參數(shù)來標(biāo)記矩陣的某些區(qū)域。例如,標(biāo)記所有小于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()

熱圖標(biāo)記目標(biāo)值示例圖:

十、sns.heatmap cmap選取

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

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
聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強師集結(jié),手把手帶你蛻變精英
請您保持通訊暢通,專屬學(xué)習(xí)老師24小時內(nèi)將與您1V1溝通
免費領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT