Plotly Express分面箱线图X轴偏移问题求助
解决Plotly Express多组分面箱线图X轴偏移问题
问题原因
Plotly Express默认会为每个分面的X轴独立计算布局,当所有分面使用相同X轴类别时,易出现箱线位置偏移——这是因为分面X轴未开启共享对齐机制。
修正步骤
- 先修复代码中的变量错误:原代码里的
strings变量未定义,需替换为group; - 通过配置分面共享X轴并固定类别顺序,实现箱线完全对齐。
修正后完整代码
import pandas as pd import numpy as np # 生成随机数据 np.random.seed(0) # 保证结果可复现 group = ['A', 'B', 'C', 'D'] parameters = ['param1', 'param2', 'param3'] repetitions = 5 # 每个参数下每组的重复次数 data = { 'group': np.tile(np.repeat(group, repetitions), len(parameters)), 'parameter': np.repeat(parameters, len(group) * repetitions), 'value': np.random.rand(len(group) * len(parameters) * repetitions) * 100 # 生成0-100的随机值 } df_ = pd.DataFrame(data) # 创建箱线图,指定类别顺序并开启X轴共享 fig = px.box( df_, x='group', y='value', facet_row='parameter', category_orders={'group': ['A', 'B', 'C', 'D']}, # 固定X轴类别顺序 facet_row_spacing=0.05 # 可选:调整分面间距,优化显示效果 ) # 开启所有分面共享X轴,强制对齐刻度位置 fig.update_layout(shared_xaxes=True) fig.show()
关键说明
category_orders:强制指定X轴类别的显示顺序,避免Plotly根据数据顺序自动调整,保证每个分面的类别顺序完全一致;shared_xaxes=True:让所有分面共享同一个X轴的刻度布局,从根源解决偏移问题。
内容的提问来源于stack exchange,提问作者fil
相关产品推荐
相关产品推荐

