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

Plotly二维散点图中z数据悬浮提示格式的修改方法咨询

Plotly二维散点图中z数据悬浮提示格式的修改方法咨询

嗨,这个问题我之前也碰到过,完全可以实现z数据的悬浮格式修改,不过和你改x、y轴hover格式的方式不太一样哦~

因为这里的“z数据”并不是一个实际的坐标轴,只是作为标记点颜色的映射值,所以没办法像x、y轴那样直接在update_layout里设置对应轴的hoverformat。不过我们可以通过自定义悬浮模板(hovertemplate)来搞定这个需求,下面给你两种常用的实现方式:

方法一:使用Plotly Express时自定义hover模板

如果你是用plotly.express创建的散点图,可以直接通过update_traces来修改悬浮模板,把z数据的格式指定好:

import plotly.express as px
import pandas as pd

# 模拟你的数据
df = pd.DataFrame({
    'x': [1.2345, 2.3456, 3.4567],
    'y': [4.5678, 5.6789, 6.7890],
    'z': [7.8901, 8.9012, 9.0123]
})

# 创建散点图,color绑定z列
fig = px.scatter(df, x='x', y='y', color='z')

# 自定义hover模板,指定z数据的格式为.3r
fig.update_traces(
    hovertemplate='x: %{x:.3r}<br>y: %{y:.3r}<br>z: %{marker.color:.3r}<extra></extra>'
)

fig.show()

这里的%{marker.color}就对应你绑定的z列数据,后面的.3r就是你想要的格式化规则。

方法二:使用Graph Objects时自定义hover模板

如果是用plotly.graph_objects手动构建的图表,同样可以在Scatter trace里直接设置hovertemplate,还可以配合customdata来传递z数据:

import plotly.graph_objects as go
import pandas as pd

df = pd.DataFrame({
    'x': [1.2345, 2.3456, 3.4567],
    'y': [4.5678, 5.6789, 6.7890],
    'z': [7.8901, 8.9012, 9.0123]
})

fig = go.Figure(data=[go.Scatter(
    x=df['x'],
    y=df['y'],
    mode='markers',
    marker=dict(color=df['z']),
    # 把z数据放入customdata
    customdata=df[['z']],
    # 自定义hover模板,引用customdata里的z并格式化
    hovertemplate='x: %{x:.3r}<br>y: %{y:.3r}<br>z: %{customdata[0]:.3r}<extra></extra>'
)])

# 你原来的x、y轴hoverformat设置可以保留
fig.update_layout(
    xaxis=dict(hoverformat='.3r'),
    yaxis=dict(hoverformat='.3r')
)

fig.show()

这样设置之后,悬浮提示里的z数据就会按照你指定的.3r格式显示啦,试一下应该就能解决你的问题~

备注:内容来源于stack exchange,提问作者user17647940

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.17 10:13:01