首页 > 解决方案 > 悬停模板标签标题更改python

问题描述

我正在尝试更改悬停模板以显示模型名称、分数和缩放技术,我能够显示前两个标题,但我无法成功在工具提示悬停中显示第三个(即变量图例)。

下面是附件图片,我可以在其中更改前两个的悬停模板。我需要将第三个标签 Model:%{Model_Names} 替换为图例变量名,有人可以帮忙吗

在此处输入图像描述

下面是我的代码。

import plotly.express as px

fig = px.bar(compareModels_aft_Cleansing, x="Base_Models", y=["Base_Models_Scores", 
                                                     "Standard_scaled_scores", "Min_Max_scaled_scores", 
                                                     "Scaling & feature selection_scores"],
              title="Training Scores", barmode='group', text = 'value',
            hover_name="Base_Models",
            hover_data={'Base_Models':False}, # remove species from hover data                     
                            )
Model_Names = ['Base_Models_Scores', 'Standard_scaled_scores', 'Min_Max_scaled_scores']
fig.update_traces(hovertemplate = '%{label}: <br>Score:%{text} <br>Model: %{Model_Names}')
fig.show()

请在下面找到数据框 compareModels_aft_Cleansing 的附加图像。

在此处输入图像描述

标签: pythonhoverplotlytooltipplotly-python

解决方案


要获得所需的悬停文本,您可以使用以下内容:

fig.update_traces(hovertemplate = '%{label}: <br>Score:%{text} <br>Model: %{data.name}<extra></extra>')

需要注意的几点:

  1. %{data.name}是 js 后端省略的事件数据,更多信息在这里

  2. 图例名称已显示在辅助框中,以删除此处<extra></extra>所述的使用。

标记<extra>中包含的任何内容都会显示在辅助框中,例如<extra>{fullData.name}</extra>. 要完全隐藏辅助框,请使用空标签<extra></extra>

完整示例:

import pandas as pd

data = {'Base_Models': ['SVM'], 
        'Base_Models_Scores': [.625], 
        'Scaling & feature selection_scores': [.75], 
        'Standard_scaled_scores': [.8], 
        'Min_Max_scaled_scores': [.95]}

compareModels_aft_Cleansing = pd.DataFrame.from_dict(data)

import plotly.express as px

fig = px.bar(compareModels_aft_Cleansing, x="Base_Models", y=["Base_Models_Scores", 
                                                     "Standard_scaled_scores", "Min_Max_scaled_scores", 
                                                     "Scaling & feature selection_scores"],
              title="Training Scores", barmode='group', text = 'value',
            hover_name="Base_Models",
            hover_data={'Base_Models':False}, # remove species from hover data                     
                            )

Model_Names = ['Base_Models_Scores', 'Standard_scaled_scores', 'Min_Max_scaled_scores']
fig.update_traces(hovertemplate = '%{label}: <br>Score:%{text} <br>Model: %{data.name}<extra></extra>')
fig.show()

在此处输入图像描述


推荐阅读