【问题标题】:How to add interactive text to Plotly bar graph with slider?如何使用滑块将交互式文本添加到 Plotly 条形图?
【发布时间】:2020-10-16 09:32:27
【问题描述】:

我希望添加交互式文本(如 KPI)以在图表上显示变量。以下是带有滑块的散点图上的 plotly 文档中的示例。我想这样做,但还要在顶部添加文字,说明任何给定年份的平均人口数量并相应更新。例如:对于 1952 年的滑块,图表顶部会显示 16950402。我还想将其保留在 plotly express 中。

我知道我可以为此使用悬停标签,但我更喜欢在图表顶部放置一些大文本。

有人知道怎么做吗?我知道可以使用变量添加图形标题或注释,但我不知道如何使用滑块更新它。

import plotly.express as px

df = px.data.gapminder()
text = df.groupby("year").pop.mean().round(0)
fig = px.scatter(df, x="gdpPercap", y="lifeExp", animation_frame="year", animation_group="country",
           size="pop", color="continent", hover_name="country", 
           log_x=True, size_max=55, range_x=[100,100000], range_y=[25,90])

fig["layout"].pop("updatemenus") # optional, drop animation buttons
fig.show()

这是我想要的输出示例,但我希望标题/文本随滑块一起更改:

【问题讨论】:

  • 这是一个非常好的问题。我尝试像 here 那样更新每一帧的标题,但尽管每一帧的布局都发生了变化,但这并没有显示出来。
  • 我也在讨论here的问题
  • @rpani 这非常有帮助!出于某种原因,如果我使用此处的示例多次播放它,我就会收到有关它冻结的错误,但它实际上对我的真实数据完美无缺。您可以在这里发布代码,以便我可以将其标记为官方答案吗?再次感谢!

标签: python plotly


【解决方案1】:

即使存在一些可能的错误,我也会按照 cmets 的要求添加代码。这里的想法是使用px 生成的帧,为每个帧添加一个标题,并为fig.layout.sliders[0].steps 中的每个步骤设置redraw = True

import plotly.express as px

df = px.data.gapminder()
text = df.groupby("year").pop.mean().astype(int).values

fig = px.scatter(df, x="gdpPercap", y="lifeExp", animation_frame="year", animation_group="country",
           size="pop", color="continent", hover_name="country", 
           log_x=True, size_max=55, range_x=[100,100000], range_y=[25,90])\
        .update_layout(
#                        title="Avg Population: {}".format(text[0]), 
                       title_x=0.5)


for i, frame in enumerate(fig.frames):
    frame.layout.title = "Avg Population: {}".format(text[i])
    
for step in fig.layout.sliders[0].steps:
    step["args"][1]["frame"]["redraw"] = True

fig.show()

【讨论】:

  • 非常好!我为此挣扎了很长一段时间,但开始倾向于得出一个不可能的结论。因此,感谢您又一篇富有启发性的帖子!
猜你喜欢
  • 1970-01-01
  • 2021-11-04
  • 2019-08-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多