【发布时间】:2022-01-03 21:27:12
【问题描述】:
尝试在 plotly 中将数据添加到 boxplot express 的悬停中,并按照 plotly 5.4.1 中的说明here。教程中提到可以通过hover_data 和hover_name 参数添加要在悬停中显示的附加信息。但是,附加悬停数据(在这种情况下来自continent 列的信息)不会显示在悬停中。我不确定这里出了什么问题? (这是我在 Google colab 中测试的代码)
import plotly.express as px
import pandas as pd
import numpy as np
np.random.seed(1234)
df = pd.DataFrame(np.random.randn(20, 1),columns=['Col1'])
df['country']=['canada','france']*10
df['continent']=['america','europe']*10
fig = px.box(df, x="country", y="Col1", hover_data=['continent'])
fig.show()
这是我在 google colab 中得到的:
使用建议的解决方案时出现错误(已通过 pip install plotly --upgrade 解决):
@Rob 提供的解决方案有效,但为了使其成为通用函数,这是我写出来的:
def box_with_hover(df,x,y,hover_data):
fig = px.box(df, x=x, y=y, hover_data=[hover_data])
fig.add_traces(
px.bar(
df.groupby([x, hover_data], as_index=False).agg(
base=(y, "min"), y=(y, lambda s: s.max() - s.min())
),
x=x,
base="base",
y="y",
hover_data={hover_data:True, x:True, "base":False, "y":False},
)
.update_traces(opacity=0.1)
.data ).update_layout(bargap=0.8)
fig.show()
【问题讨论】:
-
我不确定是什么问题。当您将鼠标悬停在框上时,它将显示数据。
-
@morhc,显示大陆数据?!你在谷歌colab上测试它吗?你能分享屏幕截图吗?谢谢
-
这与您在屏幕截图中的结果相同。这不是您想要的数据吗?如果是,请澄清问题。
标签: python plotly visualization plotly-express