请求修复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)
说明
- 文本标签部分改为引用折叠后的
value:Q字段,确保每个柱子的文本标签对应自身的数值。 - 优化了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
相关产品推荐
相关产品推荐

