高级可视化神器 Plotly 绘制热力图

公众号:尤而小屋<br>作者:Peter<br>编辑:Peter
大家好,我是 Peter~
之前更新了很多关于 Plotly 绘图的文章。今天带来的文章是基于官网和实际案例来讲解如何绘制不同需求下的热力图。
Plotly 中绘制热力图有 3 种方式:heatmap、imshow 和 figure_factory(Plotly 的图形工厂函数)
官网学习地址:
https://plotly.com/python/heatmaps/
https://plotly.com/python/imshow/
https://plotly.com/python/annotated-heatmap/

目录
本文的整体目录:

Plotly 连载文章
几篇 Plotly 更新的文章,请参考:

导入库
基于 px 展示 imshow
Plotly 中的 imshow 主要是用来展示图像数据,当然也可以用来显示热力图:
展示 RGB 图形数据

基于嵌套列表

基于二维数组的数据
1、显示颜色棒及颜色

2、不显示颜色棒+灰色

3、显示灰色+颜色棒

基于图形文件中的数据
1、基础图形

2、不显示坐标轴刻度

自定义轴刻度值

基于 go 展示 imshow
graph_objects 方法支持两种方法来绘制图像绘制:
go.Image:仅支持多通道的图像数据
go.Heatmap:支持单通道的图像数据
基于 go.Image 方法

基于 go.heatMap 方法

缺失值处理

基于图形工厂 figure_factory
figure_factory 图形工厂一个重要的作用就是绘制带有标注的热力图。我们可以看到上面的各种图形都是没有标注的
基础图形
基于图形工长如何绘制基本待标注的基本图形:

自定义颜色

如何设置不同的颜色:

自定义 XY 轴

设置字体大小
有时候我们更改标准文本中字体的大小:

实战 1:相关系数热力图
使用股票数据
采用的 plotly_express 内置的股票数据;通过相关系数函数 corr 函数求解出两两公司之间的相关系数
Plotly 中内置的一份关于股票的数据:

相关系数
生成相关系数矩阵,同时保留两位小数:

坐标轴和绘图数据
生成坐标轴和待绘图的数据:

绘图

案例 2:绘制任意坐标轴热力图
这个案例是自己曾经遇到的一个问题的解决过程,就是当我们的坐标轴中出现了数值和字符串两种类型如何解决。
官网类似案例
两个轴指定的都是字符串类型的数据
下面是可以出图的:

改变坐标轴数据
在坐标轴的数据中,同时使用数值和字符串:

这样子就不能出图:问题到底出在哪里呢?

如何解决?介绍两种方法:
方法 1:通过参数设置

方法 2:自定义函数

完美解决!
版权声明: 本文为 InfoQ 作者【Peter】的原创文章。
原文链接:【http://xie.infoq.cn/article/31692c7a3ef3d98546a6e4f97】。文章转载请联系作者。
评论