今天看啥  ›  专栏  ›  Alyna_C

【基础】学习笔记54-Python3 matplotlib绘图-热力图3

Alyna_C  · 简书  ·  · 2020-12-30 00:39

热力图3

运行结果为:



代码如下:

# 随机热力图:imshow和seaborn

import matplotlib.pyplot as plt

import numpy as np

import seaborn as sns

plt.rcParams['font.sans-serif'] = ['Arial Unicode MS']

def heatmap(data, xlabel, ylabel):  # imshow绘制矩阵随机热力图

# plt.figure(facecolor='w')

plt.subplot(121)  # imshow绘制热力图

#plt.figure(figsize=(6, 6))

plt.yticks(range(len(ylabel)), ylabel)

plt.xticks(range(len(xlabel)), xlabel)

# 求data数组的最小值和最大值

vmax, vmin = data[0][0], data[0][0]

for i in data:

if min(i) < vmin:

vmin = min(i)

if max(i) > vmax:

vmax = max(i)

map = plt.imshow(data,

interpolation='nearest',

cmap='summer',

vmin=vmin,

vmax=vmax)

plt.colorbar(map, shrink=0.5)

plt.title('imshow绘制')

plt.subplot(122)  # seaborn绘制热力图

#plt.figure(figsize=(6, 6))

ax = sns.heatmap(data,

cmap='summer',

center=None,  # 设置图例的均值数据,即发散色图以center值为中心

# annot=True,  # 显示数据

vmin=0, vmax=1,  # 更改默认colormap的范围

# cbar=False #取消颜色条的显示,默认True

)

plt.yticks(range(len(ylabel)), ylabel)

plt.xticks(range(len(xlabel)), xlabel)

plt.title('seaborn绘制')

plt.show()

if __name__ == "__main__":

data = np.random.rand(10, 10)

xlabel = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J']

ylabel = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']

heatmap(data, xlabel, ylabel)




原文地址:访问原文地址
快照地址: 访问文章快照