Plotly 热图

Ammar Ali 2023年1月30日 2022年5月14日
  1. 在 Python 中使用 Plotly 的 imshow() 函数创建热图
  2. 在 Python 中使用 Plotly 的 Heatmap() 函数创建热图
Plotly 热图

本教程将讨论在 Python 中使用 Plotly 的 imshow()Heatmap() 函数创建热图。

在 Python 中使用 Plotly 的 imshow() 函数创建热图

热图将数据表示为彩色矩形,其中颜色根据色阶而变化。我们可以使用 plotly.expressimshow() 函数来创建给定数据的热图。

imshow() 函数仅将 2D 数据作为输入。例如,让我们创建一个二维矩阵并将其传递给 imshow() 函数。请参阅下面的代码。

import plotly.express as px

data = [[1, 10, 20],
[30, 1, 10],
[20, 30, 1]]
fig = px.imshow(data)
fig.show()

输出:

使用 imshow 的随机数据热图

imshow() 函数使用默认颜色序列根据其值为每个三角形赋予不同的颜色。我们可以使用 color_continuous_scale 参数更改默认颜色序列,并将其值设置为支持的颜色序列名称,如 hotHSV

要将热图图表转换为在每个子图中包含单个列的子图组,我们可以将 facet_col 用于列并将其值设置为用于设置子图名称的整数或字符串列表。

我们还可以使用 facet_col_spacing 参数更改每个子图之间的间距,并将其值设置为从 0 到 1 的浮点数。我们可以使用 title 参数更改图的标题。

我们可以使用 widthheight 参数更改绘图的宽度和高度。我们可以使用 aspect 参数来设置每个矩形的大小相等。

例如,让我们更改上面提到的属性。请参阅下面的代码。

import plotly.express as px

data = [[1, 10, 20],
[30, 1, 10],
[20, 30, 1]]
fig = px.imshow(data, color_continuous_scale='hot', title='HeatMap', width=600, height=500, aspect='equal')
fig.show()

输出:

改变热图的属性

在 Python 中使用 Plotly 的 Heatmap() 函数创建热图

我们还可以使用 plotly.graph_objectsHeatmap() 函数来创建给定数据的热图。我们必须在 Heatmap() 函数中传递 x、y 和 z 轴值。

z 轴值属于热图的颜色。如果我们只传递 z 轴值,则其他两个轴值将从矩阵索引中获取。

让我们使用随机矩阵来创建热图。请参阅下面的代码。

import plotly.graph_objects as go

z= [[1, 10, 20],
[30, 1, 10],
[20, 30, 1]]
data = go.Heatmap(z=z)
fig = go.Figure(data)
fig.show()

输出:

使用热图的随机数据热图

我们可以将 x 和 y 轴的值设置为字符串或整数列表,但大小应与输入 z 矩阵的列数相同。

我们还可以使用 colorscale 参数更改默认颜色序列,并将其值设置为受支持的颜色序列名称,例如 hot 和 Viridis

我们可以使用 opacity 参数更改绘图的不透明度,并将其值从 0 设置为 1。

我们还可以使用 hoverinfo 参数隐藏悬停信息并将其值设置为跳过。我们可以使用 showscale 参数隐藏颜色条并将其值设置为 false。

让我们更改上面提到的属性。请参阅下面的代码。

import plotly.graph_objects as go

z= [[1, 10, 20],
[30, 1, 10],
[20, 30, 1]]
data = go.Heatmap(z=z,x=['Monday', 'Tuesday', 'Wednesday'],
y=['Morning', 'Afternoon', 'Evening'],
hoverongaps = False,colorscale='Viridis',
opacity=0.8, hoverinfo='skip', showscale=False)
fig = go.Figure(data)
fig.show()

输出:

使用 Heatmap 更改热图的属性

Author: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook

相关文章 - Plotly Plot