一、设置单元格大小
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/n/131681.html