python 作图:heatmap
python 作图:heatmap
导入几个库
import numpy as np
from numpy import random
import pandas as pdimport matplotlib.pyplot as pltimport seaborn as sns
sns.set()
基本例子
我们以一个 N×NN\times NN×N 矩阵为例。
N = 20
R = random.randn(N, N)
我们先绘制一个最基本的 heatmap(热图):
fig = plt.figure()
sns_plot = sns.heatmap(R)
# fig.savefig("heatmap.pdf", bbox_inches='tight') # 减少边缘空白
plt.show()
显示值
根据该 N×NN\times NN×N 矩阵值的大小体现在热图中。查看值的分布,可以采用 annot=True
。
N = 5
R = random.randn(N, N)fig = plt.figure()
sns_plot = sns.heatmap(R, annot=True)plt.show()
新的调整
我们发现,维度大的时候,坐标轴刻度会太密集而看不清,而且刻度上的字体很小。如何调整,如下:
- 刻度的步长调大
xticklabels
- 刻度字体大小
labelsize
N = 20
R = random.randn(N, N)# fig, ax = plt.subplots(figsize=(12,9))
fig = plt.figure()
# cmap='RdBu_r' 颜色主题风格 xticklabels 代表步长
sns_plot = sns.heatmap(R, cmap='YlGnBu', xticklabels=8, yticklabels=8)sns_plot.tick_params(labelsize=15) # heatmap 刻度字体大小
# colorbar 刻度线设置
cax = plt.gcf().axes[-1]
cax.tick_params(labelsize=15) # colorbar 刻度字体大小# fig.savefig("heatmap.pdf", bbox_inches='tight')
plt.show()
另一方面,Heatmap 中的刻度线很长,不好看。所以可以调整刻度线的位置(内、外侧)以及四个方向边是否显示刻度线:
fig = plt.figure()
# cmap='RdBu_r'
sns_plot = sns.heatmap(R, cmap='YlGnBu', xticklabels=8, yticklabels=8)
# tick_params 中 direction='in'表示刻度线位于内侧,另外还有参数 out,inout
sns_plot.tick_params(labelsize=15, direction='in')cax = plt.gcf().axes[-1]
# colorbar 中 top='off', bottom='off', left='off', right='off'表示上下左右侧的刻度线全部不显示
cax.tick_params(labelsize=15, direction='in', top='off', bottom='off', left='off', right='off')plt.show()
update:不显示坐标
# xticklabels =False
sns_plot = sns.heatmap(R, xticklabels =False)
调整索引值
最后,由于矩阵的原生索引 x,y∈{0,1,2,⋯,N−1}x,y \in \{0,1,2,\cdots,N-1\}x,y∈{0,1,2,⋯,N−1}。
如果要指定新的索引 {1,2,⋯,N}\{1,2,\cdots,N\}{1,2,⋯,N},可以利用 pandas
实现数据的包装整理。如下:
import numpy as np
from numpy import random
import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd
sns.set()N = 16
R = random.randn(N, N)R = pd.DataFrame(R, columns=np.arange(1,N+1), index=np.arange(1,N+1))# fig, ax = plt.subplots(figsize=(12,9))
fig = plt.figure()
# cmap='RdBu_r'
sns_plot = sns.heatmap(R, cmap='YlGnBu', xticklabels=5, yticklabels=5)sns_plot.tick_params(labelsize=15, direction='in')cax = plt.gcf().axes[-1]
cax.tick_params(labelsize=15, direction='in', top='off', bottom='off', left='off', right='off')# fig.savefig("heatmap.pdf", bbox_inches='tight')
plt.show()
cmap 风格大全
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
参考:https://matplotlib.org/examples/color/colormaps_reference.html
python 作图:heatmap相关推荐
- 不用第三方库,也能用 Python 作图,效果还不错
一提到用 Python 作图,很多人第一个想到的库肯定是 Matplotlib ,功能强大,但是相应地安装所需要的依赖就多.有些开发者在自己的工作流中有简单作图的需求,但是又不希望引入依赖关系复杂的 ...
- python seaborn heatmap可视化相关性矩阵
python seaborn heatmap可视化相关性矩阵 方法 方法 import pandas as pd import numpy as np import seaborn as sns df ...
- python作图颜色_python作图颜色
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 总结今天下午收获颇丰,忘记了吃饭,忘记了打游戏,一直在学习python作图. 学 ...
- python作图之plt.contour详解
plt.contour是python中用于画等高线的函数,这里介绍一下plt.contour的使用. 文章目录 使用示例 plt.contour()函数本身 plt.contour()图中的坐标 叮! ...
- Python作图颜色汇总
参考链接 Python 画图常用颜色 - 单色.渐变色.混色 - 够用 - CSDN Named colors in matplotlib - StackOverflow python中matplot ...
- 一文了解python作图(matplotlib.pyplot)
参考视频:为什么用 Matplotlib 视频总时长两个多小时,可以整体看一遍,然后看这个就会很清楚 文章目录 1. 基本用法 1.1 基础作图 1.2 figure图像 1.3 设置坐标轴 1.3. ...
- python作图一览
文章目录 m*n m*n simple_plot/histogram/scatter/pie m*n不全画 画两条线 修改装饰项 添加注释 直方图 直方图加概率密度函数图像 散点图 更改marker样 ...
- python作图——线型图,饼形图
线性二维图 import numpy as np import matplotlib.pyplot as plt plt.figure() x=np.linspace(0,2*np.pi,50) y= ...
- python作图设置背景颜色_如何在matplotlib中设置绘图的外部背景颜色
敬礼 我想更改matplotlib中绘图的外部颜色.我可以找到很多很多例子,如何改变内部背景颜色,但外部背景颜色拒绝改变.在 图像的白色部分就是我所说的"外部"背景.最外面的颜色只 ...
最新文章
- Python培训讲解二叉树的三种深度
- python批量重命名指定目录下所有文件的后缀名
- (0017)iOS 开发之Mac上安装Eclipse、创建java后台程序访问本地数据库
- python 数据可视化 -- 读取数据
- PHP Extension Makefile 製作
- 如何在Membership中实现修改密码的功能
- 如何做一场高质量的分享
- bootstrap评分插件 Bootstrap Star Rating Examples
- linux充当防火墙,Linux下主机充当防火墙的巧妙应用之iptables!.doc
- 隔一段时间查找一次 golang_剑指 offer-04 二维数组中的查找
- JAVA回形数的实现
- linux awk使用详解
- Linux——常用文件管理命令(必会)
- 全局唯一标识符 (GUID)
- 转载:机器人工程师学习计划(YY硕)
- html复选框变蓝,更改html复选框的背景颜色
- js计算时间差(天、小时、分钟、秒)(日期计算)
- 国内做三维GIS的公司总结-cesium和threejs
- 利用N2N内网穿透,并实现直连
- react中使用lazy函数进行路由懒加载
热门文章
- php-fpm服务启动命令,PHP-fpm服务的启动和停止
- [学习笔记]省选(算法?数据结构?)·线性基
- 我用数据告诉你,哪个省才是高考地狱模式?
- 网易我的世界手机版服务器文件在哪个文件夹,网易我的世界手机版怎么导入地图...
- DES_3DES_AES_IDES_RSA密码算法比较
- 大类资产配置(三)市场择时能力模型T-M
- LaTex 数学之矩阵
- bat打开网页10秒后关闭
- GIS——地图比例尺
- JDK 8 - computeIfAbsent,computeIfPresent,compute