You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Plotly散点图如何在悬停时融合两个非关联DataFrame的数据

解决方案

方法1:临时添加合并文本列到主DataFrame

由于两个DataFrame结构不匹配无法直接关联,你可以把相关矩阵中delta对应的附加信息拼接成字符串,临时加入主DataFrame作为新列(不修改原列名),再将这个新列加入hover数据:

# 从相关矩阵DataFrame(示例命名为corr_matrix_df)提取delta对应的附加信息
# 请根据你的实际矩阵结构调整提取逻辑
gamma_val = corr_matrix_df.loc['delta', 'gamma']
alpha_val = corr_matrix_df.loc['delta', 'alpha']

# 生成附加信息文本并添加到主DataFrame
X_reduced_df['delta_extra'] = f"gamma: {gamma_val}, alpha: {alpha_val}"

# 原代码基础上,把新列加入hover_data
fig = px.scatter(X_reduced_df, x='EXTRACTION_DATE_SAMPLE', y='score_IF', color= 'anomaly_class_IF', 
                 hover_data=['score_IF','delta',
                             'omicron',
                             'NH4-N (titr.)(W)_Zusatzparameter-ESRI',
                             'P ges. filtr. (photom.)(W) mA_Zusatzparameter-ESRI',
                             'BSB5 (mit Verd) DIN 1899_Zusatzparameter-ESRI',
                             'N org. (Ber. TKN)(W)_Zusatzparameter-ESRI',
                             'delta_extra'  # 新增的附加信息列
                            ], 
                 title="Default Display with Gaps")
fig.show()

# 可选:用完后删除临时列,避免污染原DataFrame
del X_reduced_df['delta_extra']

方法2:手动修改Plotly图的hover文本

如果不想改动主DataFrame,可以在生成图表后,直接遍历每个数据系列,把附加信息追加到hover文本中:

fig = px.scatter(X_reduced_df, x='EXTRACTION_DATE_SAMPLE', y='score_IF', color= 'anomaly_class_IF', 
                 hover_data=['score_IF','delta',
                             'omicron',
                             'NH4-N (titr.)(W)_Zusatzparameter-ESRI',
                             'P ges. filtr. (photom.)(W) mA_Zusatzparameter-ESRI',
                             'BSB5 (mit Verd) DIN 1899_Zusatzparameter-ESRI',
                             'N org. (Ber. TKN)(W)_Zusatzparameter-ESRI'
                            ], 
                 title="Default Display with Gaps")

# 提取相关矩阵中delta的附加信息
gamma_val = corr_matrix_df.loc['delta', 'gamma']
alpha_val = corr_matrix_df.loc['delta', 'alpha']
extra_info = f"<br>gamma: {gamma_val}<br>alpha: {alpha_val}"

# 遍历所有数据系列,追加附加信息到hover文本
for trace in fig.data:
    trace.hovertext = [text + extra_info for text in trace.hovertext]

fig.show()

补充说明

如果每个数据点对应的delta附加信息不是全局固定值,需要先建立主DataFrame中delta值与相关矩阵的映射关系,把对应的值匹配后再生成文本或追加到hover文本中。两种方法都不会修改原DataFrame的列名,符合你的需求。

内容的提问来源于stack exchange,提问作者Danny

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 22:15:31