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

热力图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)

你可能感兴趣的:(【基础】学习笔记54-Python3 matplotlib绘图-热力图3)