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

Plotly热力图:如何修改颜色条的刻度文本

解决Plotly热力图颜色条刻度文本替换失效的问题

你的问题出在错误使用了coloraxis_colorbar配置项,Plotly中go.Heatmap的颜色条默认直接绑定到trace本身,而非全局的coloraxis(除非你显式指定coloraxis参数)。

以下是两种有效解决方法:

方案1:直接在Heatmap trace中配置colorbar

这是单一热力图场景下最直接的方式,将刻度替换逻辑写在go.Heatmap的colorbar参数内:

import numpy as np
import pandas as pd
import plotly.graph_objects as go

vals = np.random.rand(10,10)*5
vals = np.around(vals)

tick_text = ['A','B','C','D','E']

df = pd.DataFrame(vals)

fig = go.Figure(go.Heatmap(
    z=df.values,
    x = df.index,
    y = df.columns,
    # 直接配置颜色条刻度
    colorbar=dict(
        tickmode='array',
        tickvals=[1,2,3,4,5],  # 对应需要替换的数字刻度
        ticktext=tick_text      # 替换为目标文本
    )
))
fig.update_layout(
    height=500,
    width=500
)
fig.show()

方案2:显式指定coloraxis并全局配置

如果需要多个trace共享同一颜色轴,可先给Heatmap绑定全局coloraxis,再通过update_layout配置:

import numpy as np
import pandas as pd
import plotly.graph_objects as go

vals = np.random.rand(10,10)*5
vals = np.around(vals)

tick_text = ['A','B','C','D','E']

df = pd.DataFrame(vals)

fig = go.Figure(go.Heatmap(
    z=df.values,
    x = df.index,
    y = df.columns,
    coloraxis='coloraxis'  # 显式关联全局颜色轴
))
fig.update_layout(
    height=500,
    width=500,
    coloraxis_colorbar=dict(
        tickmode='array',
        tickvals=[1,2,3,4,5],
        ticktext=tick_text
    )
)
fig.show()

补充说明

  • 若你的数据包含0值,需要给tickvals添加0,并在tick_text中补充对应文本(比如['0','A','B','C','D','E'])。
  • 方案1适合单热力图场景,方案2适合多trace共享颜色轴的复杂可视化需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 10:12:36