一、設置單元格大小
import seaborn as sns # default settings and colors sns.color_palette("BuGn_r") sns.set(rc={'figure.figsize':(11.7,8.27)}) # load dataset flights = sns.load_dataset("flights") # pivot data to make a square matrix flight_matrix = flights.pivot("month","year","passengers") # heatmap with customized cell size sns.heatmap(flight_matrix, linewidths=0.5, square=True, cmap='BuGn',annot=True, fmt='d', center=flight_matrix.loc['January', 1955])
通過以上代碼我們可以看到,對於Python Heatmap,我們可以使用Seaborn庫來載入數據集,對數據進行修改後繪製Heatmap。這裡用到了pivot函數將數據集按照行和列進行重塑後得到一個完整的數據矩陣,然後可以對這個數據矩陣進行自定義設置。在上述代碼中,我們可以設置單元格的大小,這是Heatmap中的一個非常重要的功能,它可以讓我們更好地展示數據。
另外,我們可以看到,對於Seaborn庫的使用,我們可以通過sns.set()
函數來設定整個圖表的大小和顏色調板,這樣做可以大大節省代碼量,並使得代碼更加美觀易讀。
值得一提的是,在設置單元格大小時,我們使用了square=True
的參數,這個參數可以設置單元格的寬度和高度相等,從而得到一個正方形的矩陣。
二、顏色設定
import seaborn as sns # default settings and colors sns.color_palette("BuGn_r") sns.set(rc={'figure.figsize':(11.7,8.27)}) # load dataset flights = sns.load_dataset("flights") # pivot data to make a square matrix flight_matrix = flights.pivot("month","year","passengers") # heatmap with customized cell size and color setting sns.heatmap(flight_matrix, linewidths=0.5, square=True, cmap='BuGn',annot=True, fmt='d', center=flight_matrix.loc['January', 1955], cbar_kws={'label': 'Passengers'})
在Heatmap中,顏色的設定也是非常重要的。我們可以通過設定顏色映射來實現對顏色的自定義設置。上述代碼中,我們可以通過使用Seaborn庫中的cmap
參數來指定顏色的調板。這個調板的值可以從官方文檔中找到,這樣我們就可以將我們需要的顏色映射在Heatmap中。
同時,我們還可以使用cbar_kws
參數來設置顏色條的自定義標籤。
三、數據標註
import seaborn as sns # default settings and colors sns.color_palette("BuGn_r") sns.set(rc={'figure.figsize':(11.7,8.27)}) # load dataset flights = sns.load_dataset("flights") # pivot data to make a square matrix flight_matrix = flights.pivot("month","year","passengers") # heatmap with customized cell size and data annotation sns.heatmap(flight_matrix, linewidths=0.5, square=True, cmap='BuGn',annot=True, fmt='d', center=flight_matrix.loc['January', 1955], cbar_kws={'label': 'Passengers'})
Heatmap的另一個重要功能是數據標註。通過數據標註,我們可以在Heatmap中更好地展示數據。上述代碼中,我們可以通過annot=True
參數來實現數據標註,而通過fmt參數可以進一步指定標註的數據格式。
這一功能非常重要,原因在於Heatmap很容易受到顏色和單元格大小的影響。通過數據標註,我們可以很方便地將數據展示出來,讓讀者可以更好地理解圖表中的意思。
四、數據層次化展示
import seaborn as sns # default settings and colors sns.color_palette("BuGn_r") sns.set(rc={'figure.figsize':(11.7,8.27)}) # load dataset flights = sns.load_dataset("flights") # pivot data to make a square matrix flight_matrix_1 = flights.pivot("month","year","Sun") flight_matrix_2 = flights.pivot("month","year","Mon") flight_matrix_3 = flights.pivot("month","year","Tue") flight_matrix_4 = flights.pivot("month","year","Wed") flight_matrix_5 = flights.pivot("month","year","Thu") flight_matrix_6 = flights.pivot("month","year","Fri") flight_matrix_7 = flights.pivot("month","year","Sat") # subplots of heatmaps fig, axs = plt.subplots(nrows=4,ncols=2,figsize=(15,15)) sns.heatmap(flight_matrix_1, ax=axs[0,0], linewidths=0.5, square=True, cmap='BuGn',annot=False ) sns.heatmap(flight_matrix_2, ax=axs[0,1], linewidths=0.5, square=True, cmap='BuGn',annot=False ) sns.heatmap(flight_matrix_3, ax=axs[1,0], linewidths=0.5, square=True, cmap='BuGn',annot=False ) sns.heatmap(flight_matrix_4, ax=axs[1,1], linewidths=0.5, square=True, cmap='BuGn',annot=False ) sns.heatmap(flight_matrix_5, ax=axs[2,0], linewidths=0.5, square=True, cmap='BuGn',annot=False ) sns.heatmap(flight_matrix_6, ax=axs[2,1], linewidths=0.5, square=True, cmap='BuGn',annot=False ) sns.heatmap(flight_matrix_7, ax=axs[3,0], linewidths=0.5, square=True, cmap='BuGn',annot=False ) # remove axis labels and set title for ax in axs.flat: ax.set(xlabel='', ylabel='') ax.set_title('Passenger Traffic By Day of Week')
最後,我們可以將多個數據集合併在一張圖表上,實現數據層次化展示。在上述代碼中,我們可以將每個星期的機票數據集分別繪製在子圖中,並通過設定偏移量,將不同的數據集放在不同的圖層上,這樣可以讓讀者更好地理解圖表中的數據結構。
在代碼中,我們使用了plt.subplots(nrows=4,ncols=2,figsize=(15,15))
函數來設置圖表的子圖展示,可以根據實際需要進行調整。具體而言,如果我們有多個不同的數據集需要展示時,我們可以將這些數據集按照層次關係放在不同的圖層中展示,以減少圖表的複雜度。
總結
以上就是Python Heatmap的詳細介紹。在本文中,我們詳細介紹了如何設置單元格大小、顏色設定、數據標註、數據層次化展示等Heatmap中的重要功能。這些功能的使用可以幫助我們更好地展示數據,提高圖表的可讀性和易理解性。
綜上所述,Python Heatmap是數據可視化中非常重要的一種技術,也是我們必須掌握的技術之一。在實際工作中,我們可以靈活運用這些技巧來繪製各種各樣的Heatmap,以更好地展示數據。
原創文章,作者:TMLC,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/131681.html