两个或多个热图的 Python Plotly 悬停信息
Posted
技术标签:
【中文标题】两个或多个热图的 Python Plotly 悬停信息【英文标题】:Python Plotly hoverover information for two or more heatmaps 【发布时间】:2021-10-13 06:10:36 【问题描述】:我正在绘制 3 个热图,并且希望在我将鼠标悬停在 (x,y) 点上时显示所有 3 个热图的 z 值。
我已经看到,对于散点图,您可以使用统一的 x 来显示悬停时所有图的信息。有没有类似的方法来为热图绘制统一的 z 值?
我还看到您可以创建自定义文本的数据框并将其用作悬停标签,但这对于我正在尝试做的事情来说似乎有点过分了。
谢谢
【问题讨论】:
【参考方案1】: 这实际上是答案Plotly Python - Heatmap - Change Hovertext (x,y,z) 模拟 3 个相互叠加的热图 构建文本数组,这是所有三层的 z 值import pandas as pd
import numpy as np
import plotly.graph_objects as go
dfs = [pd.DataFrame(index=list("abcd"), columns=list("ab"),
data=np.where(np.random.randint(1, 8, [4, 2]) == 1,
np.nan, np.random.randint(1, 500, [4, 2]),)
)
for i in range(3)]
# create text array same shape as z
text = pd.concat(dfs).groupby(level=0).agg(c:lambda v: ", ".join(v.astype(str)) for c in dfs[0].columns).values
# figure
go.Figure([go.Heatmap(z=df.values, x=df.columns, y=df.index, name=i, text=text, hoverinfo="text")
for i, df in enumerate(dfs)
])
【讨论】:
以上是关于两个或多个热图的 Python Plotly 悬停信息的主要内容,如果未能解决你的问题,请参考以下文章