如何在日期型X轴上添加多组箱线图?
解决Plotly箱线图X轴显示日期的问题
你遇到的问题是因为使用预编译分位数模式时,没有正确将日期与每个箱线对应绑定。以下是修改后的代码及关键说明:
修改后的完整代码
import pandas as pd import plotly.graph_objects as go from plotly.subplots import make_subplots # 确保Date列是datetime类型(若原始数据格式不符则执行此步) df['Date'] = pd.to_datetime(df['Date']) # 提取对应箱线数量的日期(你当前有3个箱线,取3个目标日期) box_dates = df['Date'].unique()[:3] fig = make_subplots(rows=2, columns=1) fig.add_trace(go.Scatter(x=df['Date'], y=df['Measure']), row=1, col=1) fig.add_trace(go.Box( x=box_dates, # 为每个箱线绑定对应的日期 y=[[0], [0], [0]], name="Precompiled Quartiles", q1=[1, 2, 3], median=[4, 5, 6], q3=[7, 8, 9], lowerfence=[-1, 0, 1], upperfence=[5, 6, 7] ), row=2, col=1) # 可选:强制指定X轴为日期类型,确保显示格式正确 fig.update_xaxes(type='date', row=2, col=1) fig.show()
关键说明
- 日期与箱线绑定:使用预编译分位数参数(
q1/median/q3等)时,x参数的数组长度必须和分位数数组长度一致(此处均为3),每个元素对应一个箱线的X轴位置。 - 日期格式校验:必须保证
Date列是datetime类型,否则Plotly无法识别为日期轴,会默认按索引值(0、1、2)显示。 - X轴类型强制设置:通过
update_xaxes(type='date')可以明确指定X轴为日期类型,避免出现显示格式异常。
内容的提问来源于stack exchange,提问作者Cauder
相关产品推荐
相关产品推荐

