为什么添加hline/vline时Plotly/Dash混合图表与表格子图会报错?
这是Plotly的已知Bug,不是你的布局配置错误。
问题根因
你开启了全局shared_xaxes=True,同时第一行第三列的子图类型是table(不属于笛卡尔坐标系图表,没有xaxis/yaxis属性)。调用add_vline/add_hline这类快捷方法时,Plotly内部处理共享轴的逻辑会尝试给同一行所有子图关联轴属性,碰到没有xaxis配置项的Table类型就会抛出报错。
可行解决方案
推荐直接通过添加shape的方式加参考线,绕开有问题的快捷方法,代码示例如下:
# 给row=1 col=1的子图添加x=42的垂直参考线 fig.add_shape( type="line", x0=42, x1=42, y0=0, y1=1, xref="x", # 对应row1 col1的x轴ID,不确定的话可以先打印fig.layout查看轴命名 yref="y domain", # 参考线高度覆盖整个y轴范围 line_width=1, line_dash="dot", line_color="rgba(255, 165, 0, 0.3)" )
如果需要保留全局共享轴配置,这个方案是最稳定的,不会牵连到非坐标系类型的子图。
如果不想手动写shape配置,也可以关闭全局shared_xaxes,仅给你需要共享轴的子图(比如第一列的5个散点图)单独设置轴共享,同样可以规避这个问题。
内容的提问来源于stack exchange,提问作者pepe
相关产品推荐
相关产品推荐

