仅在 Plotly 图中显示特定点的标签?

Posted

技术标签:

【中文标题】仅在 Plotly 图中显示特定点的标签?【英文标题】:Show the label for only a specific point in a Plotly graph? 【发布时间】:2021-08-02 04:00:57 【问题描述】:

例如,使用 Plotly 文档中的这个示例

import plotly.express as px

df = px.data.gapminder().query("year==2007 and continent=='Americas'")

fig = px.scatter(df, x="gdpPercap", y="lifeExp", text="country", log_x=True, size_max=60)

fig.update_traces(textposition='top center')

fig.update_layout(
    height=800,
    title_text='GDP and Life Expectancy (Americas, 2007)'
)
fig.show()

我正在寻找一种只显示指定点的标签的方法,比如在这种情况下只显示“秘鲁”。

任何帮助表示赞赏,谢谢!

【问题讨论】:

我的建议对您有何帮助? 【参考方案1】:

您始终可以像这样编辑fig.data[0]text 属性:

fig.data[0].text = [e if e == 'Peru' else '' for e in fig.data[0].text]

得到:

这里的缺点是,这将从hoverlabel 中删除所有其他国家/地区的国家/地区名称:

因此,我宁愿将您想要突出显示的国家/地区的数据子集并使用fig.add_annotation(),如下所示:

df2 = df[df['country'] == 'Peru']
fig.add_annotation(x=np.log10(df2['gdpPercap']).iloc[0],
                   y=df2["lifeExp"].iloc[0],
                   text = df2["country"].iloc[0],
                   showarrow = True,
                   ax = 10,
                   ay = -25
                  )

得到:

完整代码:

import plotly.express as px
import numpy as np

df = px.data.gapminder().query("year==2007 and continent=='Americas'")

fig = px.scatter(df, x="gdpPercap", y="lifeExp",
#                  text="country",
                 log_x=True, size_max=60)

fig.update_traces(textposition='top center')

fig.update_layout(
    height=800,
    title_text='GDP and Life Expectancy (Americas, 2007)'
)

df2 = df[df['country'] == 'Peru']
fig.add_annotation(x=np.log10(df2['gdpPercap']).iloc[0],
                   y=df2["lifeExp"].iloc[0],
                   text = df2["country"].iloc[0],
                   showarrow = True,
                   ax = 10,
                   ay = -25
                  )
# f = fig.full_figure_for_development(warn=False)
fig.show()

【讨论】:

以上是关于仅在 Plotly 图中显示特定点的标签?的主要内容,如果未能解决你的问题,请参考以下文章

Plotly:仅在特定子图中堆积条形图

Plotly:如何自定义图例?

Plotly:如何在 plotly express 折线图中更改图例的变量/标签名称?

Plotly Sankey 图中的附加标签

如何使用 Plotly 删除堆叠和分组条形图中的 x 轴刻度标签

如何使用javascript在plotly中旋转数据点的文本标签