Plotly制作热力图
之前更新了很多关于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更新的文章,请参考:
导入库
1 | import pandas as pd |
基于px展示imshow
Plotly中的imshow主要是用来展示图像数据,当然也可以用来显示热力图:
展示RGB图形数据
1 | # 数据部分 |
基于嵌套列表
1 | fig = px.imshow([[1, 20, 30], |
基于二维数组的数据
1、显示颜色棒及颜色
1 | data = np.arange(20).reshape(4,5) # 如何使用Numpy生成数据 |
2、不显示颜色棒+灰色
1 | data = np.arange(20).reshape(4,5) |
3、显示灰色+颜色棒
1 | data = np.arange(20).reshape(4,5) |
基于图形文件中的数据
1、基础图形
1 | # 从skimage中导入数据 |
2、不显示坐标轴刻度
1 | # 从skimage中导入数据 |
自定义轴刻度值
1 | import plotly.express as px |
基于go展示imshow
graph_objects方法支持两种方法来绘制图像绘制:
- go.Image:仅支持多通道的图像数据
- go.Heatmap:支持单通道的图像数据
基于go.Image方法
1 | import plotly.graph_objects as go |
基于go.heatMap方法
1 | import plotly.graph_objects as go |
缺失值处理
1 | import plotly.graph_objects as go |
基于图形工厂 figure_factory
figure_factory图形工厂一个重要的作用就是绘制带有标注的热力图。我们可以看到上面的各种图形都是没有标注的
基础图形
基于图形工长如何绘制基本待标注的基本图形:
1 | import plotly.figure_factory as ff |
自定义颜色
1 | import plotly.figure_factory as ff |
如何设置不同的颜色:
1 | import plotly.figure_factory as ff |
自定义XY轴
1 | import plotly.figure_factory as ff |
设置字体大小
有时候我们更改标准文本中字体的大小:
1 | import plotly.figure_factory as ff |
实战1:相关系数热力图
使用股票数据
采用的plotly_express内置的股票数据;通过相关系数函数corr函数求解出两两公司之间的相关系数
1 | stock = px.data.stocks() |
Plotly中内置的一份关于股票的数据:
相关系数
生成相关系数矩阵,同时保留两位小数:
坐标轴和绘图数据
生成坐标轴和待绘图的数据:
绘图
1 | import plotly.figure_factory as ff |
案例2:绘制任意坐标轴热力图
这个案例是自己曾经遇到的一个问题的解决过程,就是当我们的坐标轴中出现了数值和字符串两种类型如何解决。
官网类似案例
两个轴指定的都是字符串类型的数据
1 | import plotly.figure_factory as ff |
下面是可以出图的:
改变坐标轴数据
在坐标轴的数据中,同时使用数值和字符串:
这样子就不能出图:问题到底出在哪里呢?
如何解决?介绍两种方法:
方法1:通过参数设置
1 | import plotly.figure_factory as ff |
方法2:自定义函数
1 | import plotly.figure_factory as ff |
完美解决!