【Python】绘制热力图seaborn.heatmap,cmap设置颜色的参数
1. 参数详解
seaborn.heatmap
seaborn.heatmap(data, vmin=None, vmax=None, cmap=None, center=None, robust=False, annot=None, fmt='.2g', annotkws=None, linewidths=0, linecolor='white', cbar=True, cbarkws=None, cbar_ax=None, square=False, ax=None, xticklabels=True, yticklabels=True, mask=None, **kwargs)
- data:矩阵数据集,可以使numpy的数组(array),如果是pandas的dataframe,则df的index/column信息会分别对应到heatmap的columns和rows
- vmax,vmin, 图例中最大值和最小值的显示值,没有该参数时默认不显示
- linewidths,热力图矩阵之间的间隔大小
- cmap,热力图颜色
- ax,绘制图的坐标轴,否则使用当前活动的坐标轴。
- annot,annotate的缩写,annot默认为False,当annot为True时,在heatmap中每个方格写入数据。
- annot_kws,当annot为True时,可设置各个参数,包括大小,颜色,加粗,斜体字等:
sns.heatmap(x, annot=True, ax=ax2, annot_kws={'size':9,'weight':'bold', 'color':'blue'})- fmt,格式设置,决定annot注释的数字格式,小数点后几位等;
- cbar : 是否画一个颜色条
cbar_kws : 颜色条的参数,关键字同 fig.colorbar,可以参考:matplotlib自定义colorbar颜色条-以及matplotlib中的内置色条。
mask,遮罩
使用时有两个小技巧,
(1)先用sns.set(font_scale)修改字体比例:
sns.set(font_scale=1.5)
(2)再用plt.rc对全图字体进行统一修改:
plt.rc('font',family='Times New Roman',size=12)
2. 颜色效果
cmap的参数如下:
Accent, Accent_r, Blues, Blues_r, BrBG, BrBG_r, BuGn, BuGn_r, BuPu, BuPu_r, CMRmap, CMRmap_r, Dark2, Dark2_r, GnBu(绿到蓝), GnBu_r, Greens, Greens_r, Greys, Greys_r, OrRd(橘色到红色), OrRd_r, Oranges, Oranges_r, PRGn, PRGn_r, Paired, Paired_r, Pastel1, Pastel1_r, Pastel2, Pastel2_r, PiYG, PiYG_r, PuBu, PuBuGn, PuBuGn_r, PuBu_r, PuOr, PuOr_r, PuRd, PuRd_r, Purples, Purples_r, RdBu, RdBu_r, RdGy, RdGy_r, RdPu, RdPu_r, RdYlBu, RdYlBu_r, RdYlGn, RdYlGn_r, Reds, Reds_r, Set1, Set1_r, Set2, Set2_r, Set3, Set3_r, Spectral, Spectral_r, Wistia(蓝绿黄), Wistia_r, YlGn, YlGnBu, YlGnBu_r, YlGn_r, YlOrBr, YlOrBr_r, YlOrRd(红橙黄), YlOrRd_r, afmhot, afmhot_r, autumn, autumn_r, binary, binary_r, bone, bone_r, brg, brg_r, bwr, bwr_r, cividis, cividis_r, cool, cool_r, coolwarm(蓝到红), coolwarm_r, copper(铜色), copper_r, cubehelix, cubehelix_r, flag, flag_r, gist_earth, gist_earth_r, gist_gray, gist_gray_r, gist_heat, gist_heat_r, gist_ncar, gist_ncar_r, gist_rainbow, gist_rainbow_r, gist_stern, gist_stern_r, gist_yarg, gist_yarg_r, gnuplot, gnuplot2, gnuplot2_r, gnuplot_r, gray, gray_r, hot, hot_r(红黄), hsv, hsv_r, icefire, icefire_r, inferno, inferno_r, jet, jet_r, magma, magma_r, mako, mako_r, nipy_spectral, nipy_spectral_r, ocean, ocean_r, pink, pink_r, plasma, plasma_r, prism, prism_r, rainbow, rainbow_r, rocket, rocket_r, seismic, seismic_r, spring, spring_r, summer (黄到绿), summer_r (绿到黄), tab10, tab10_r, tab20, tab20_r, tab20b, tab20b_r, tab20c, tab20c_r, terrain, terrain_r, twilight, twilight_r, twilight_shifted, twilight_shifted_r, viridis, viridis_r, vlag, vlag_r, winter, winter_r
示范如下:
cmap="YlGnBu":数字越大,颜色越深
cmap="YlGnBu_r":数字越大,颜色越浅
cmap="hot":黄色到红色,数字越大,颜色越浅
cmap="hot_r":红色到黄色,数字越大,颜色越深
cmap="OrRd":深红色到浅红色,类似“Oranges”。
cmap="autumn":黄色到红色
cmap="greens":绿色,数字越大,颜色越深
cmap="viridis":黄到蓝
cmap="greys":灰色
cmap="Purples":紫色
cmap="rainbow":彩虹色
cmap="gist_rainbow":彩虹色
将colormap置于特定值的中心(参考链接):
>>> ax = sns.heatmap(flights, center=flights.loc["January", 1955])
使用遮罩绘制矩阵中的一部分
>>> corr = np.corrcoef(np.random.randn(10, 200))
>>> mask = np.zeros_like(corr)
>>> mask[np.triu_indices_from(mask)] = True
>>> with sns.axes_style("white"):
... ax = sns.heatmap(corr, mask=mask, vmax=.3, square=True)
np.zeros_like() 返回一个零数组,其形状和类型与给定的数组相同;
np.triu_indices_from(mask) 返回数组上三角形的索引。
以下是一些网络上发现的配色好看的图:
原文链接: https://www.php.cn/python-tutorials-391565.html
# cmap用cubehelix map颜色
cmap = sns.cubehelix_palette(start = 1.5, rot = 3, gamma=0.8, as_cmap = True)
sns.heatmap(pt, linewidths = 0.05, ax = ax1, vmax=900, vmin=0, cmap=cmap)
# cmap用matplotlib colormap
sns.heatmap(pt, linewidths = 0.05, ax = ax2, vmax=900, vmin=0, cmap=
'rainbow'
)
#center的用法(颜色)
f, (ax1,ax2) = plt.subplots(figsize = (6, 4),nrows=2)
cmap = sns.cubehelix_palette(start = 1.5, rot = 3, gamma=0.8, as_cmap = True)
sns.heatmap(pt, linewidths = 0.05, ax = ax1, cmap=cmap, center=None )
#设置x轴图例为空值ax1.set_ylabel(
'kind'
)
# 当center设置小于数据的均值时,生成的图片颜色要向0值代表的颜色一段偏移
sns.heatmap(pt, linewidths = 0.05, ax = ax2, cmap=cmap, center=200)
#robust的用法(颜色)
f, (ax1,ax2) = plt.subplots(figsize = (6,4),nrows=2)
cmap = sns.cubehelix_palette(start = 1.5, rot = 3, gamma=0.8, as_cmap = True)
sns.heatmap(pt, linewidths = 0.05, ax = ax1, cmap=cmap, center=None, robust=False )
sns.heatmap(pt, linewidths = 0.05, ax = ax2, cmap=cmap, center=None, robust=True )
#mask对某些矩阵块的显示进行覆盖
p2 = sns.heatmap(pt, ax=ax2, cmap=cmap, xticklabels=True, mask=(pt<800))
#mask对pt进行布尔型转化,结果为True的位置用白色覆盖
用mask实现:突出显示某些数据
sns.heatmap(x, mask=x < 1, ax=ax2, annot=True, annot_kws={
"weight"
:
"bold"
}) #把小于1的区域覆盖掉
3. 个性化设置
个性化设置参考:Python - Seaborn可视化:图形个性化设置的几个小技巧
将x轴刻度放置在top位置的几种方法
# 将x轴刻度放置在top位置的几种方法
# ax.xaxis.set_ticks_position(‘top‘)
ax.xaxis.tick_top()
# ax.tick_params(axis=‘x‘,labelsize=6, colors=‘b‘, labeltop=True, labelbottom=False)
设置坐标轴刻度参数,”axis”不写的时候,默认是x轴和y轴的参数同时调整。
# 设置坐标轴刻度的字体大小
# matplotlib.axes.Axes.tick_params
ax.tick_params(axis=‘y‘,labelsize=8) # y轴
旋转轴刻度上文字方向的两种方法
# 旋转轴刻度上文字方向的两种方法
ax.set_xticklabels(ax.get_xticklabels(), rotation=-90)
# ax.set_xticklabels(corr.index, rotation=90)
更多请见:
设置Matplotlib颜色条大小以匹配图形(Set Matplotlib colorbar size to match graph)
seaborn基本使用
4. 代码备份
'''
深入挖掘
'''
font = {'family': 'Times New Roman','size': 12,}
sns.set(font_scale=1.2)
plt.rc('font',family='Times New Roman')fig = plt.figure(figsize = (16, 12))
ax1=fig.add_subplot(2,1,1)
cor = SubShowFeatures01.corr()
mask = np.zeros_like(cor)
for i in range(len(mask)):for j in range(i+1, len(mask[0])):mask[i][j] = Truesns.heatmap(cor,linewidths = 0.05, ax=ax1, mask=mask, annot=True, annot_kws=font, vmax=1.0, vmin=-1.0, cmap='YlGnBu', center=0.5, cbar=True, robust=False)
ax1.set_title('User features - 01', fontdict=font)ax2=fig.add_subplot(2,1,2)cor = SubShowFeatures02.corr()
mask = np.zeros_like(cor)
for i in range(len(mask)):for j in range(i+1, len(mask[0])):mask[i][j] = True
sns.heatmap(cor,linewidths = 0.05, ax=ax2, mask=mask, annot=True, annot_kws=font, vmax=1.0, vmin=-1.0, cmap='YlOrRd', center=0)
ax2.set_title('User features - 02', fontdict=font)plt.show()
【Python】绘制热力图seaborn.heatmap,cmap设置颜色的参数相关推荐
- python热力图颜色设置_【Python】绘制热力图seaborn.heatmap,cmap设置颜色的参数
1. 参数详解 seaborn.heatmap seaborn.heatmap(data, vmin=None, vmax=None, cmap=None, center=None, robust=F ...
- 绘制热力图seaborn.heatmap,cmap设置颜色的参数
cmap的参数如下: Accent, Accent_r, Blues, Blues_r, BrBG, BrBG_r, BuGn, BuGn_r, BuPu, BuPu_r, CMRmap, CMRma ...
- 可视化篇(五)——— python绘制热力图及案例
可视化篇(五)--- python绘制热力图及案例 摘要 效果图 python代码 摘要 本文演示了如何通过python绘制热力图,并给出了其应用于展示数据之间相关性的案例供读者参考. 效果图 pyt ...
- Python 绘制热力图
Python绘制热力图 reference 目标:绘制如下的 hotmap 或者 density-map ,把坐标和hot-value或者density-value替换为自己的数据,稍微改进就可以绘制 ...
- 【画图】Python绘制热力图方法以及保存不全问题(seaborn.heatmap)
0 前言 鉴于Matlab画图已经被封,自此画图战线全部转移到Python上来,这篇博客描述了Python画热力图的方法以及我踩到的坑. 1 程序 1.1 导入包 这里使用seaborn的heatma ...
- python绘制contourf填色图,设置色标,解决填图的颜色与实际数值不一致的问题
import matplotlib as mpl from matplotlib import cmfs = 13 # 设置字体大小 # 设置色条 cmap = cm.get_cmap('jet') ...
- Python绘制热力图
最近在建模时有绘制相关系数矩阵热力图的需要,在此记录一下热力图的基本使用 这里使用seaborn库中的的heatmap完成热力图的绘制,我们可以根据图中不同方块颜色来判断变量之间相关系数的大小,接下来 ...
- Python 绘制热力图参数详解
同个人网站 https://www.serendipper-x.cn/,欢迎访问 ! 参数设置: (1)热力图输入数据参数: data:矩阵数据集,可以是numpy的数组(array),也可以是pan ...
- python绘制热度图(heatmap)
1.简单的代码 from matplotlib import pyplot as plt import seaborn as sns import numpy as np import pandas ...
最新文章
- package中的常用script命令
- 呼市职称计算机考试时间,2016下半年内蒙古呼和浩特会计从业考试报名时间
- [云炬创业基础笔记] 第四章测试3
- 钢笔墨水能否代替打印机墨水_LAMY钢笔应该如何选择墨水?
- kotlin键值对数组_Kotlin程序检查数组是否包含给定值
- fourinone分布式协调设计解析
- oracle怎么不让别的电脑连接,[转载]修改计算机名字导致oracle连接不上的解决方案...
- JavaWeb——servlet介绍
- android按钮_Android按钮
- Linux中的cp命令老九门
- http://msdn.itellyou.cn/
- hello world你知多少------300种编程语言中的hello world程序汇
- html实现五子棋ai,JS实现五子棋——AI篇
- springClude简单配置
- 互联网日报 | 吉利汽车完成科创板上市辅导;华为开发者大会9月10日举行;贵州茅台整治“年份酒”乱象...
- mysql md5 数据库_mysql数据库密码md5加密
- css过长文字自动换行
- html5 端午节 龙舟,端午节赛龙舟的作文(精选10篇)
- php codis,codis集群部署实战
- 大数据spark整合kafka
热门文章
- Nexus 5设备调试
- FC200 长广防盗维修专家
- 【在线仿真】Arduino 超声波测距+LCD1602显示
- VUE中自定义步骤条
- 影视后期制作画面、声音、效果如何平衡?
- 不用PS,小白也能轻松搞定抠图
- OpenVINO: export failure: libpython3.9.so.1.0: cannot open shared object file: No such file or direc
- 用jupyter notebook修改.md文件后,遇见的问题:Jupyter上无法保存md文件; FileNotFoundError: [Errno 2] No such file or direc
- java判断麻将听牌,和牌看听:麻将听牌种类大全
- python爬取12306_python爬取12306列车信息