前言

最近基于python绘制热力图,在此总结一下自己学到的新知识 。

heatmap()中参数属性解释

seaborn.heatmap(data, *, vmin=None, vmax=None, cmap=None, center=None, robust=False, annot=None, fmt='.2g', annot_kws=None, linewidths=0, linecolor='white', cbar=True, cbar_kws=None, cbar_ax=None, square=False, xticklabels='auto', yticklabels='auto', mask=None, ax=None, **kwargs)

vmin,vmax:用于指定右侧bar中最小值与最大值的显示值

cmap:指定一个colormap对象,用于热力图的填充色

center:指定颜色中心值,通过该参数可以调整热力图的颜色深浅

annot:指定一个bool类型的值或与data参数形状一样的数组,如果为True,就在热力图的每个单元上显示数值,这里我设置为False

fmt:指定单元格中数据的显示格式

annot_kws:有关单元格中数值标签的其他属性描述,如颜色、大小等

linewidths :指定每个单元格的边框宽度

linecolor:指定每个单元格的边框颜色

cbar:bool类型参数,是否用颜色条作为图例,默认为True

square:bool类型参数,是否使热力图的每个单元格为正方形,默认为False

cbar_kws:有关颜色条的其他属性描述

xticklabels,yticklabels:指定热力图x轴和y轴的刻度标签,如果为True,则分别以数据框的变量名和行名称作为刻度标签,这里我指定为False,且未进行其余赋值,所以x,y轴部分无刻度

mask:用于突出显示某些数据

ax:用于指定子图的位置

下述代码实现效果如图1:

sns.heatmap(uniform_data, ax=ax,vmin=min(loss),vmax=max(loss),cmap='rainbow',linewidths=0.5,annot=False,cbar=True,xticklabels= False, yticklabels= False)

python网格间距 python画图网格线设置_python网格间距

 

我将热力图理解为三维图的俯视图,beta和gamma可以理解为X和Y轴元素,而对应的网格为Z轴上的元素。网格内的颜色深浅反映了二维数组uniform_data中数值的大小,在这里数值越大,颜色越红,如果需要显示每个网格对应的具体数值,只需要将annot属性设置为True。

我想要去除上述图表中的网格线,查阅很多博客才知道可以通过去除linewidths这个属性实现,去除后效果如下图:

sns.heatmap(uniform_data, ax=ax,vmin=min(loss),vmax=max(loss),cmap='rainbow',annot=False,cbar=True,xticklabels= False, yticklabels= False)

python网格间距 python画图网格线设置_python_02