Python热力图:seaborn——Python学习系列

使用seaborn包与矩阵中的数据,绘制热力图

import matplotlib.pyplot as plt
import seaborn as sns
import os
import pandas as pd
import datetime as dt

def heatmap_fig(val_matrix, columns, rows, name):
	# 导入数据
    cs = val_matrix
    cs_frame = pd.DataFrame(cs, index=rows, columns=columns)
    plt.figure(figsize=(60, 56))
    f, ax = plt.subplots(figsize=(10, 8))
    sns.heatmap(cs_frame, annot=True, annot_kws={'size': 12}, square=True, cmap='Reds', linewidths=0.5, vmin=0, vmax=1)  # 设定图像字体大小
    ax.tick_params(labelsize=18)  # 设定坐标轴label字体大小
    ax.set_yticklabels(ax.get_yticklabels(), rotation=0)  # 设定y轴label是否水平 
    
    # 设定文件路径与文件名
    time_now = dt.datetime.strftime(dt.datetime.now(), '%Y%m%d_%H%M%S')
    fig_path = "./figure/"
    if not os.path.exists(fig_path):
        os.makedirs(fig_path)
    fig_file = fig_path + time_now + "_" + name + ".pdf"
    
    # 保存图像
    plt.savefig(fig_file, dpi=600, bbox_inches='tight')
    plt.show()
    plt.clf()

matrix_test = [[1, 0.1, 0.01], [0.1, 1, 0.5]]
col = ['col1', 'col2', 'col3']
row = ['row1', 'row2']
heatmap_fig(matrix_test, col, row, 'test)
# 矩阵的行列维度、要分别对应col、row的长度

运行结果:
在这里插入图片描述


不添加该语句的效果:# ax.set_yticklabels(ax.get_yticklabels(), rotation=0)
在这里插入图片描述


seaborn中还有很多其它制图的细节,后面继续学习其使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值