You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python Plotly向子图添加多条轨迹后显示空白的问题求解

问题解决方案

1. 调整画布尺寸与布局

默认画布尺寸不足以容纳6×6共36张子图,会导致图形被挤压隐藏,需要手动指定画布参数:

plot_rows = 6
plot_cols = 6
# 创建子图时调整子图间距
fig = make_subplots(
    rows=plot_rows, 
    cols=plot_cols,
    horizontal_spacing=0.04,
    vertical_spacing=0.04
)
# 全局设置画布总大小,关闭全局图例避免占用过多空间
fig.update_layout(
    height=1200,
    width=1800,
    showlegend=False
)

你可以根据自己的显示需求调整height、width和间距参数的数值。

2. 测试渲染模式兼容性

部分环境下Scattergl的WebGL加速渲染存在兼容性问题,可先替换为普通Scatter验证:
将所有go.Scattergl替换为go.Scatter即可,修改后代码示例:

fig.add_trace(go.Scatter(
    x=df.index, 
    y=df[df.columns[x]].values,
    name = df.columns[x],
    mode = 'lines'
), row=i, col=j)

3. 校验数据有效性

提前验证数据避免空值或索引异常导致无渲染内容:

# 绘图前执行校验
print(f"df列数:{len(df.columns)},df2列数:{len(df2.columns)}")  # 列数需≥36
print(f"首列原始数据前5行:{df.iloc[:5, 0].values}")
print(f"首列滤波数据前5行:{df2.iloc[:5, 0].values}")
print(f"索引前5个值:{df.index[:5]}")  # 确认索引不为空

4. 大数据量分批测试

如果单条曲线数据点超过100万,可先注释掉后续子图的渲染逻辑,仅保留前2~3张子图测试,排查是否是总数据量过大导致浏览器渲染超时。

5. Jupyter环境适配

如果在Jupyter Notebook/Lab中运行,需安装对应渲染扩展后重启内核:

# Jupyter Notebook 环境执行
pip install ipywidgets
jupyter nbextension enable --py widgetsnbextension

# Jupyter Lab 环境执行
jupyter labextension install jupyterlab-plotly

内容的提问来源于stack exchange,提问作者Iceberg_Slim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 11:27:00