python画三维热力图,python基于场景的热力图
Yyds干货库存
1.简介热图是一种统计图表,用颜色块显示数据。画图时,需要指定颜色映射的规则。例如,较大的值用较深的颜色表示,较小的值用较浅的颜色表示;较大的值用暖色表示,较小的值用冷色表示,依此类推。
本文主要用Python制作热图,样例如下:
废话少说,我们开始吧!
2.阅读图像。首先,让我们读取样本图像并相应地对其进行裁剪。示例代码如下:
将numpy作为np导入
将matplotlib.pyplot作为plt导入
将skimage.io作为io导入
img=PLT . im read( butterfly-7320158 _ 960 _ 720 . jpg )
#裁剪
img_cut=img[147:447,]
图表()
plt.imshow(img_cut)运行后,结果如下:
3.图像变灰。由于热图主要是用来可视化二维矩阵的,所以我们需要把彩色图转换成灰度图。代码如下:
从skimage.color导入rgb2gray
gray_img=rgb2gray(img_cut)
plt.imshow(gray_img,cmap=gray )的运行结果如下:
4.像素化效果这一步的操作主要是让图像看起来像一个像素化的艺术品。首先,我们把图像分成不重叠的块。我们分割的块越大,像素化的程度就越高。
对于每个块,我们计算该块中的一些代表值。在这里,我们可以使用整个块的最小值、最大值或中值。这里只显示最小值,代码如下:
从skimage导入工具
#选择盒子大小
块形状=(10,10)
view=util . view _ as _ blocks(gray _ img,block_shape)
#将最后两个维度合二为一
flatten _ view=view . shape(view . shape[0],view.shape[1],-1)
#在框内选择最小值
min_view=np.min(flatten_view,axis=2)
plt.imshow(min_view,cmap=gray )的运行结果如下:
5.为热图选择调色板是创造热图艺术效果自由度最高的一步。Seaborn palette可能是个不错的选择。我们来看一些不同风格的效果图:
将seaborn作为sns导入
#保存LinkedIn推荐的尺寸(2000宽,600高)
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 )结果如下:
此外,viridis风格的结果如下:
光谱样式结果如下:
6.总结本文介绍了如何在Python中逐步实现热图的艺术风格图,展示了不同调色板设置下的效果图,并给出了相应的代码示例。
你丢了学业吗?
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。