Plotly瀑布图用日期字符串X轴时总计列不显示的解决方法
解决Plotly瀑布图日期X轴下总计列消失的问题
问题场景
当使用文本类X轴时,瀑布图的总计列可以正常显示:
import plotly.graph_objects as go fig = go.Figure( go.Waterfall( measure = ["relative", "relative", "total"], x = ["Sales", "Consulting", "Net revenue"], y = [60, 80, 0], ) ) fig.show()
但将X轴替换为日期字符串加总计文本后,Plotly会自动将X轴识别为日期类型,非日期格式的"Net revenue"会被过滤,导致总计列消失:
import plotly.graph_objects as go fig = go.Figure( go.Waterfall( measure = ["relative", "relative", "total"], x = ["2022-01-01", "2022-01-02", "Net revenue"], y = [60, 80, 0], ) ) fig.show()
解决方案
通过手动指定X轴的类型为category,强制Plotly将所有X轴项视为类别而非自动解析为日期,即可保留总计列:
import plotly.graph_objects as go fig = go.Figure( go.Waterfall( measure = ["relative", "relative", "total"], x = ["2022-01-01", "2022-01-02", "Net revenue"], y = [60, 80, 0], ) ) # 强制X轴使用类别类型,避免自动解析日期 fig.update_layout(xaxis_type='category') fig.show()
原理说明
Plotly会自动检测X轴数据的格式,当包含符合日期规范的字符串时,会默认启用日期轴类型。此时非日期格式的文本项无法被日期轴识别,因此不会显示。将X轴类型设置为category后,所有X轴元素都会被当作独立的类别处理,无论内容是否为日期,都能正常显示。
内容的提问来源于stack exchange,提问作者Jossy
相关产品推荐
相关产品推荐

