利用python创作热力图

sgzqc sgzqc     2022-12-03     131

关键词:

1. 引言

热力图,是一种通过对色块着色来显示数据的统计图表。绘图时,需指定颜色映射的规则。例如,较大的值由较深的颜色表示,较小的值由较浅的颜色表示;较大的值由偏暖的颜色表示,较小的值由较冷的颜色表示,等等。

本文主要用Python来实现热力图的制作,样例如下:

利用Python创作热力图_python

闲话少说,我们直接开始吧!

2. 读取图像

首先,我们来读取样例图像,并对其进行相应的​​crop​​操作。样例代码如下:

import numpy as np 
import matplotlib.pyplot as plt
import skimage.io as io
img = plt.imread("butterfly-7320158_960_720.jpg")
# crop
img_cut = img[147:447,:,:]
plt.figure()
plt.imshow(img_cut)

运行后,得到结果如下:

利用Python创作热力图_图像处理_02

3. 图像灰度化

由于热力图主要用于可视化二维矩阵,所以我们需要将彩色图转化为灰度图,代码如下:

from skimage.color import rgb2gray
gray_img = rgb2gray(img_cut)
plt.imshow(gray_img,cmap=gray)

运行结果如下:

利用Python创作热力图_图像处理_03

4. 像素化效果

这一步的操作主要是为了使图像看起来像像素化的艺术品。我们首先将图像划分为非重叠​​block​​块。我们将​​block​​块的大小划分的越大,像素化程度看起来越高。

对于每个block块,我们计算该块中一些代表值。在这里,我们可以使用整个块的最小值,最大值或中值。这里仅展示最小值的情形,代码如下:

from skimage import util

# select box size
block_shape = (10, 10)
view = util.view_as_blocks(gray_img, block_shape)

# collapse the last two dimensions in one
flatten_view = view.reshape(view.shape[0], view.shape[1], -1)

# choose min within box
min_view = np.min(flatten_view, axis=2)

plt.imshow(min_view,cmap=gray)

运行结果如下:

利用Python创作热力图_python_04

5. 为热力图选择调色板

这一步是我们创作热力图艺术效果自由度最高的步骤。​​seaborn​​调色板可能是一个很好的选择。我们来看一些不同风格的效果图:

import seaborn as sns

# save figure for LinkedIn recommended size (2000 width, 600 height)
my_dpi=96
plt.figure(figsize=(2000/my_dpi, 600/my_dpi), dpi=my_dpi)
sns.heatmap(max_view,xticklabels=False,yticklabels=False,cmap="coolwarm",cbar=False)
plt.savefig("coolwarm.png",bbox_inches=tight)

结果如下:

利用Python创作热力图_python_05

此外,viridis风格结果如下:

利用Python创作热力图_python_06

Spectral风格结果如下:

利用Python创作热力图_图像处理_07

6. 总结

本文介绍了如何在Python中一步一步地实现热力图艺术风格图,并展示了不同调色板设置下的效果图,并给出了相应的代码示例。

您学废了嘛?

利用Python创作热力图_图像处理_08

python绘制相关系数热力图(代码片段)

....设置配色,画出多幅图全部代码:本文讲述如何利用python绘制如上的相关系数热力图一.数据说明和需要安装的库数据是31个省市有关教育的12个指标,如下所示。,在文章最后自取:需要安装如下库:pipins... 查看详情

python怎样采集微信热力图

参考技术A1)打开微信进入应用后点击导航栏【我】,接着点击【钱包】,进入钱包后点击【城市服务】。2)接着点击【城市热力图】,接着点击上方【搜索栏】。3)搜索找到你要去的【地方】,就可以查看到该地区的【热力... 查看详情

python热力图绘制方法—新手教程

参考技术A#Python热力图绘制方法热力图的使用场景有 1.描述数据在空间的密集程度,常见有城市热力图,区域热力图2.描述多个变量之间相关性高低程度#step1准备数据集,读取excel列表内容,usecols=index,这里是表里的第一列不... 查看详情

python可视化lassocv特征筛选之后的特征的相关性分析热力图

python可视化lassocv特征筛选之后的特征的相关性分析热力图目录python可视化lassocv特征筛选之后的特征的相关性分析热力图#lassocv模型 查看详情

python绘制热力图(代码片段)

最近在建模时有绘制相关系数矩阵热力图的需要,在此记录一下热力图的基本使用这里使用seaborn库中的的heatmap完成热力图的绘制,我们可以根据图中不同方块颜色来判断变量之间相关系数的大小,接下来介绍heatmap的... 查看详情

arcpy多线程热力图(代码片段)

...先将有经纬度的表中的数据筛选出表并生成xy事件,接着利用核密度工具生成栅格,最后呢裁剪栅格通过mapping包出图。????出图过程比较慢,所以考虑使用多线程(一张图五分钟,十九张图多线程九分钟你说吼不吼)。多线程第一次... 查看详情

空间数据可视化:3.空间热力图

...如果只有空间位置,可能求的是密度图,就是我们之前用python中的seaborn做的两个维度的密度图,其实就是热力图的意思;两个维度的密度图就是热力图 把评论和人均做热力的差别来分开;开始--插入--单元格(纵向);数据-... 查看详情

304arcgis_for_js热力图4.21(03)

...derer还不支持在SceneViews中使用,只能在二维点图层中使用利用开源heatmap结合arcgisapiforjs实现自定义HeatmapLayer类,继承DynamicMapServiceLayer,然后结合heatmap.js一起这个之前在3.X中用过。4.X中没这么使用过 查看详情

python遥感图像处理应用篇(二十七):python绘制遥感图像各波段热力图(相关系数矩阵)(续)

续-https://soderayer.blog.csdn.net/article/details/125757807上一篇中使用csv文件计算的相关系数热力图,本篇我们直接使用遥感图像来计算图像波段之间的相关系数。方法一:已有软件ENVI计算实际上,目前已有的软件,如ENVI就可以直接计算... 查看详情

python遥感图像处理应用篇(二十四):python绘制遥感图像各波段热力图(相关系数矩阵)(代码片段)

...统计运算。我们这里不使用遥感图像软件计算,直接使用Python计算。要实现整个目标,我们首先需要提取遥感图像波段中各个像元的信息。这里我们可以将遥感图像读 查看详情

python遥感图像处理应用篇(二十四):python绘制遥感图像各波段热力图(相关系数矩阵)(代码片段)

...统计运算。我们这里不使用遥感图像软件计算,直接使用Python计算。要实现整个目标,我们首先需要提取遥感图像波段中各个像元的信息。这里我们可以将遥感图像读 查看详情

滴滴热力图-php版(后面有js版本)

/***获取边界*@returnmixed*@returnfalse|string*@throwsException*/publicfunctionactionBorder(){$lock_file="/tmp/process.lock";$lock_file_handle=fopen($lock_file,‘w‘);if($lock_file_handle===false)die("Canno 查看详情

matplotlib实例教程热力图(代码片段)

前言🔗运行环境:python3🚩作者:K同学啊🥇精选专栏:《深度学习100例》🔥推荐专栏:《小白入门深度学习》📚选自专栏:《Matplotlib教程》🧿优秀专栏:《Python入门100题》你可能... 查看详情

可视化神器plotly绘制热力图(代码片段)

...y的图形工厂函数)官网学习地址:https://plotly.com/python/heatmaps/https://plotly.com/python/imshow/https://plotly.com/python/annotated-heatmap/目录本文的整体目录:Plotly连载文章几篇Plotly更新的文章,请参考:导入库importpandasaspdim... 查看详情

如何制作炫酷的热力图

如何制作炫酷的热力图来自:http://mp.weixin.qq.com/s/s85vBmTv1GdzozQMWjY6xA2017-11-07 ArcGIS带你飞  飞言飞语 Attention “热力图”是描述趋势变化强力武器,可以将报告内容瞬间提升一个档次,不过,制作“热力... 查看详情

tableau图表大全11之热力图

文章目录热力图样式构建热力图GIF演示热力图样式热图是一种使用颜色显示数据的地图。可以在Tableau中创建它具有一个或多个维度和至少一个度量值。热图用于根据颜色比较数据。例如,销售额下降将为红色,而增长为... 查看详情

#openlayer热力图显示(代码片段)

openlayer热力图显示相关库类importmomentfrom\'moment\'importProjectionfrom\'ol/proj/Projection\'importStaticfrom\'ol/source/ImageStatic\'importMapfrom\'ol/Map\'importImageLayerfrom\'ol/layer/Image\'importViewfr 查看详情

openlayers6热力图(附源码下载)(代码片段)

前言之前写过一篇openlayers4版本的地图热力图文章,但是由于是封装一层js代码写的,很多初学者看起来比较有点吃力,所以本篇文章重新写一篇地图热力图文章,直接基于最新版本openlayers6写的,纯粹html+js+css形式,没有任何封... 查看详情