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

Plotly texttemplate未按预期生效,如何显示指定列文本?

问题:Plotly柱状图texttemplate无法正确显示自定义label文本

我根据Plotly文档编写代码,预期柱状图的每个条形显示df['label']对应的文本,但实际显示的是df['Foo']中的字符串,使用的Plotly版本为5.17.0。

复现代码

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

print(plotly.__version__)  # 输出:5.17.0

df = pd.DataFrame(data={
    "Foo": ['a','b','c'],
    'Bar': [2,5,10], 
    'label': ['alpha','beta', 'charlie']
})
print(df)
#        Foo  Bar    label
#     0    a    2    alpha
#     1    b    5     beta
#     2    c   10  charlie

bar = go.Bar(x=df['Foo'], y=df['Bar'], texttemplate ="%{label}")
go.Figure(data=bar).show()

实际效果

实际生成的柱状图

请问如何让texttemplate正常工作,使每个条形显示df['label']中的文本?


解决方案

修改代码实现需求

在go.Bar中,texttemplate的占位符无法直接引用DataFrame的自定义列名,需要先通过text参数传入df['label']的数据,再用%{text}在texttemplate中调用:

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

print(plotly.__version__)  # 输出:5.17.0

df = pd.DataFrame(data={
    "Foo": ['a','b','c'],
    'Bar': [2,5,10], 
    'label': ['alpha','beta', 'charlie']
})

# 传入text参数并在texttemplate中引用%{text}
bar = go.Bar(x=df['Foo'], y=df['Bar'], text=df['label'], texttemplate ="%{text}")
go.Figure(data=bar).show()

原理说明

  • Plotly的texttemplate仅支持识别内置属性占位符(如x、y、text等),不能直接访问DataFrame的自定义列。
  • 必须先将需要显示的自定义文本通过text参数传递给柱状图对象,之后才能在texttemplate中通过%{text}来调用这些内容。

内容的提问来源于stack exchange,提问作者Mitchell van Zuylen

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 21:52:48