Python热力图绘制方法—新手教程

Python014

Python热力图绘制方法—新手教程,第1张

# Python热力图绘制方法

热力图的使用场景有 

1.描述数据在空间的密集程度,常见有城市热力图,区域热力图

2.描述多个变量之间相关性高低程度

# step 1 准备数据集,读取excel列表内容,usecols = index, 这里是表里的第一列不读取。

index =range(1, 11)

dataset = np.array(pd.read_csv(r'C:\Users\Administrator\Desktop\heatmap.csv', usecols=index))

# step 2  读取excel行索引转成列表,作为热力图的y轴标签

a = (pd.read_csv(r'C:\Users\Administrator\Desktop\heatmap.csv', usecols=[0]))

y_label =list(a.stack())

# step 3 读取excel列索引转成列表,作为热力图的x轴标签

b = (pd.read_csv(r'C:\Users\Administrator\Desktop\heatmap.csv'))

column_index=(b.columns.tolist())

x_label = column_index[1:]

# 这一步是为了计算热力图的数据的最大值,可以进行标准化处理,也可以直接显示数据,dataframe转成list,从list里面寻找最大值

dataset_max = (pd.read_csv(r'C:\Users\Administrator\Desktop\heatmap.csv', usecols=index))

list1 = np.array(dataset_max.stack())

max_number =max(list1)

# step 4 开始绘制热力图

plt.figure(figsize=(14, 8))# 定义输出图像大小,annot参数决定是否在热力图上显示数值,Vmax,Vmin表示最大最小值,cmap表示颜色

sns.heatmap(dataset, fmt='.0f', annot=True, vmin=0, vmax=max_number, cmap='Reds', yticklabels=y_label,

            xticklabels=x_label)

# 绘制标签

plt.xlabel('This is x label', labelpad=15)

plt.ylabel('This is y label', labelpad=20)

plt.show()

python中可使用seaborn.heatmap画热力图, 官方文档在这

在分类任务中,也可用于画混淆矩阵:

一些参数的含义:

例子:

将最后一行改为,设置最大值和最小值:

设置中心值:

从文件中获取数据,并画图给出有意义的横纵坐标:

将passengers对应的人数标出:

设置方格之间的间隔:

设置使用不同的颜色:

以某个具体的数据为中心:

自动填充坐标值:

不画右边的热度条:

热力图的一个常见应用场景是绘制相关系数热力图,数据准备一个相关系数矩阵。

调用 heatmap 方法绘制热力图。

设置 vmin 和 vmax 参数可以调整调色板的下限值和上限值。

设置 cmap 参数,可以修改调色板样式。

设置参数 cbar=False 可以隐藏图例。

设置参数 annot=True 可以显示热力图上的具体数值,设置 fmt 参数,可以修改数值显示的样式。