Plotly express箱形图hover_data参数不生效问题及解决方案
Plotly Express箱形图悬停信息缺失问题处理记录
我使用Plotly 5.4.1版本时,参照官方文档说明,尝试通过hover_data、hover_name参数为plotly express箱形图添加额外悬停信息,但测试中需要展示的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升级Plotly版本解决:
@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()
内容的提问来源于stack exchange,提问作者Masih
相关产品推荐
相关产品推荐

