Plotly 热图
本教程将讨论在 Python 中使用 Plotly 的 imshow()
和 Heatmap()
函数创建热图。
在 Python 中使用 Plotly 的 imshow()
函数创建热图
热图将数据表示为彩色矩形,其中颜色根据色阶而变化。我们可以使用 plotly.express
的 imshow()
函数来创建给定数据的热图。
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()
函数使用默认颜色序列根据其值为每个三角形赋予不同的颜色。我们可以使用 color_continuous_scale
参数更改默认颜色序列,并将其值设置为支持的颜色序列名称,如 hot
和 HSV
。
要将热图图表转换为在每个子图中包含单个列的子图组,我们可以将 facet_col
用于列并将其值设置为用于设置子图名称的整数或字符串列表。
我们还可以使用 facet_col_spacing
参数更改每个子图之间的间距,并将其值设置为从 0 到 1 的浮点数。我们可以使用 title
参数更改图的标题。
我们可以使用 width
和 height
参数更改绘图的宽度和高度。我们可以使用 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_objects
的 Heatmap()
函数来创建给定数据的热图。我们必须在 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()
输出: