Plotly Express 防止文本值出现在悬停模板中

Posted

技术标签:

【中文标题】Plotly Express 防止文本值出现在悬停模板中【英文标题】:Plotly Express prevent text values from appearing in hover template 【发布时间】:2022-01-09 03:30:40 【问题描述】:

如何防止下例中以text=df.petal_width.values 传递的文本值显示在悬停工具提示中?它们只能作为注释直接显示在图上。

import plotly.express as px

df = px.data.iris()

fig = px.scatter(
    df,
    x="sepal_length",
    y="sepal_width",
    color="species",
    text=df.petal_width.values,
)

fig.show()

明确地说,我知道我可以传递text=df.petal_width,并且工具提示值不会被称为text,而是petal_width。这不是我想要的。我希望它完全消失。到目前为止我发现的唯一方法是丑陋的:

hov_temp = [
    x for x in fig.data[0].hovertemplate.split("<br>") if not x.startswith("text")
]
fig.data[0].hovertemplate = "<br>".join(hov_temp)

【问题讨论】:

【参考方案1】:

您可以将带有标签的 dict 传递给 hover_datatext=df.petal_width

labels = 'species':True,'sepal_length':True,'sepal_width':True,'petal_length':False,'petal_width':False
fig = px.scatter(df,x='sepal_length',y='sepal_width',color='species',text=df.petal_width,hover_data=labels)
fig.show()

【讨论】:

完美,看来labels = 'petal_width': False 就够了。 text 也可以是列名。所以col='petal_width'px.scatter(...,text=col,hover_data=col:False) 也可以使用

以上是关于Plotly Express 防止文本值出现在悬停模板中的主要内容,如果未能解决你的问题,请参考以下文章

在 Plotly Express 中删除自定义悬停卡右侧的颜色

单击时显示悬停而不是悬停在plotly python中的数据点上?

R plotly禁用默认悬停文本并仅显示自定义文本

在 plotly express 中添加另一个数据框作为注释

在情节中悬停文本问题

两个或多个热图的 Python Plotly 悬停信息