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

Python中如何移除Plotly Express/Graph Objects图表的网格线

问题根因

你当前绘制的是多Y轴散点图,常规移除网格线的方法不生效,核心原因是代码中从y2开始创建了多个独立的自定义Y轴,每个坐标轴的网格线配置相互独立、默认开启;仅修改默认yaxis的配置,不会作用到yaxis2、yaxis3等后续创建的Y轴上。

可行解决步骤
  • 统一关闭所有坐标轴网格
    在所有trace添加完成后、调用Streamlit渲染接口前,调用Plotly的全局轴更新方法,一次性关闭X轴和所有Y轴的网格线,不需要逐个给每个Y轴写配置:
    # 关闭X轴网格
    fig.update_xaxes(showgrid=False)
    # 关闭所有Y轴(含你创建的y2/y3等多Y轴)网格
    fig.update_yaxes(showgrid=False)
    
    # 如需同时隐藏零轴线,可替换为以下写法
    # fig.update_xaxes(showgrid=False, zeroline=False)
    # fig.update_yaxes(showgrid=False, zeroline=False)
    
  • 排除Streamlit主题覆盖问题
    如果加完上述配置仍有网格线,是Streamlit默认主题强制覆盖了Plotly的原生配置,渲染时显式指定不启用Streamlit内置主题即可:
    # 原代码第二个参数True是use_container_width,补充theme=None避免样式覆盖
    st.plotly_chart(fig, use_container_width=True, theme=None)
    
  • (备选)单轴精准配置方案
    如果你需要给不同Y轴设置不同样式,可在update_layout中逐个指定每个轴的网格配置,有多少个Y轴就添加多少个对应配置项:
    fig.update_layout(
        xaxis = dict(showgrid=False),
        yaxis = dict(showgrid=False), # 第一个默认Y轴
        yaxis2 = dict(showgrid=False), # 第二个Y轴
        yaxis3 = dict(showgrid=False), # 第三个Y轴
        # 后续新增Y轴按序号依次补充配置即可
    )
    

注意:网上大部分旧教程仅提供了修改默认yaxis的代码,仅适用于单Y轴场景,多Y轴场景下必须覆盖所有自定义Y轴的配置才能完全移除网格线。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 17:09:29