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

请求修复Altair柱状图文本标签显示重复数值的问题

Altair柱状图文本标签显示异常修复

问题

使用Altair绘制柱状图时,Reservation_count与ON_ACCOUNT两个系列的文本标签显示相同数值(例如最后一组柱子均显示2,实际应分别为2和68),但tooltip显示的计数正确。

原因

代码中text图层直接引用原始字段ON_ACCOUNT:Q作为文本内容,但此时通过transform_fold已将宽表转换为长表,原始的ON_ACCOUNT和Reservation_count字段已被折叠为column(类别)和value(数值)字段。直接引用原始字段会导致所有文本标签都取ON_ACCOUNT的值,无法匹配对应柱子的实际数值。

修正后的代码

bars = alt.Chart(r).transform_fold(
   ['Reservation_count', 'ON_ACCOUNT'],
  as_=['column', 'value']
).mark_bar().encode( 
  x='month:N',
  y='value:Q', 
  color=alt.Color('column:N', scale=alt.Scale(range=["#f50520", "#bab6b7"])),  
  tooltip=alt.Tooltip(['month:N', 'column:N', 'value:Q']),  # 优化tooltip,匹配折叠后的字段
)
text = bars.mark_text(
    align='left',
    color='black',
    baseline='middle',
    dx=0, dy=-8  # 调整文本位置避免覆盖柱子
).encode( 
    text=alt.Text('value:Q', format='.0f')  # 改用折叠后的value字段作为文本内容
) 

rule = alt.Chart(r).mark_rule(color='red').encode(
    y='mean(Reservation_count):Q'
)   

(bars+text+rule).properties(width=490, height=310)

说明

  1. 文本标签部分改为引用折叠后的value:Q字段,确保每个柱子的文本标签对应自身的数值。
  2. 优化了tooltip内容,改为显示折叠后的month、column和value字段,让tooltip信息更清晰匹配每个柱子。

数据集

month   ON_ACCOUNT  Reservation_count
0   1   22          134
1   2   32          137
2   3   22          135
3   4   21          113
4   5   18          120
5   6   17          90
6   7   26          83
7   8   11          86
8   9   11          102
9   10  2           68

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 16:31:01