Python绘制热力图

最近投SCI论文的时候,有些实验结果需要热力图展示,所以专门试了一下如何用python绘制热力图,发现简单好用,下面分享给大家具体方法。

一、安装python库

需要安装pandas、seaborn、matplotlib安装包依赖,均用pip一键安装即可,然后导入相关包。

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

二、绘制热力图

具体实现代码如下,代码中的注释部分包括修改字体大小,修改具体内容、行列标签等:

#!/usr/bin/python
# -*- coding: utf-8 -*-
# Author thesky
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

# 设置中文字体
plt.rcParams['font.family'] = 'SimHei'

# 数据
data = [[91.1, 93.6, 93.8],
        [91.4, 93.7, 93.6],
        [92.6, 93.7, 93.6],
        [93.6, 93.8, 93.5],
        [93.2, 93.6, 93.4]]

# 创建 DataFrame
df = pd.DataFrame(data, columns=['0.001', '0.0001', '0.00001'], index=['1.0', '0.1', '0.01', '0.001', '0.0001'])

# 制作热力图
plt.figure(figsize=(10, 7))
sns.set(font_scale=1.2)  # 设置字体比例
# custom_colors = sns.diverging_palette(20, 220, n=256, as_cmap=True)  # 创建自定义的调色板
custom_colors = ["#8B4513", "#FF4500"]  # 棕色和红色
# 设置横轴和纵轴标签
plt.xlabel('adv_eps', fontsize=20)  # 设置标签字体大小
plt.ylabel('adv_lr', fontsize=20)
# heatmap = sns.heatmap(df, annot=True, cmap='YlGnBu', fmt='.1f')  # 保留一位小数
heatmap = sns.heatmap(df, annot=True, cmap='YlOrRd', fmt='.1f')
# 设置横轴和纵轴标签
plt.xlabel('adv_eps')
plt.ylabel('adv_lr')
# 添加标题
plt.title('IMDB(Baseline 93.3)', fontsize=20)

plt.show()

效果图如下:

上图是红色效果,值越大则红色深度越明显。若想改成其他颜色,只需修改这行代码:

heatmap = sns.heatmap(df, annot=True, cmap='YlOrRd', fmt='.1f')

修改为:

heatmap = sns.heatmap(df, annot=True, cmap='YlGnBu', fmt='.1f')

效果图如下:

 

具体实现过程中可以将代码中data改为自己数据,然后行列的标签根据自实际需要进行修改。 

  • 8
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

上海大学 吴昊

作者逐个题目分析的噢

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值