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

如何移除Streamlit托管服务中Plotly图表的0位水平黑线?

问题:Streamlit部署后Plotly图表出现0位水平黑线,本地正常

本地用Streamlit展示Plotly折线图时,图表没有0位水平黑线,但部署到Streamlit托管服务({appname}.streamlit.app)后,图表底部出现了一条位于0处的水平黑线。尝试在update_layout中为xaxis和yaxis设置showline=False,但该设置无效。

代码示例

import pandas as pd
import plotly.express as px
import datetime as dt
import streamlit as st

price_data = btc_price()

drawdown_fig = px.line(price_data, x=price_data.Date, y=price_data.Price, title=f'Significant Bitcoin Drawdowns')

drawdown_fig.update_layout(
    font=dict(
        family="Proxima Nova",
        size=12,
        color="Black"
    ),
    plot_bgcolor='rgba(0,0,0,0)',
    showlegend = False,
    xaxis=dict(
        title=None,
        showgrid=False,
        showline=False,
    ), 
    yaxis=dict(
        title=None,
        showgrid=False,
        showline=False,

    ),
)

drawdown_fig.update_traces(line_color='#27B296', line_width=1)

drawdown_fig.add_annotation(x=dt.date(2011, 6, 1), 
            y=5500,
            text="Jun 2011<br>-99%",
            showarrow=False,
            )

# 省略其他注释内容
st.plotly_chart(drawdown_fig)

效果对比

  • 预期效果(本地环境):无0位水平黑线
    本地环境图表:无0位水平黑线
  • 异常效果(Streamlit托管):出现0位水平黑线
    Streamlit托管图表:出现0位水平黑线

解决方案

showline=False仅控制坐标轴的边框线(如y轴左侧的竖线),而0位的水平黑线是y轴的零刻度线,需要单独设置zeroline=False来隐藏。

修改update_layout中的yaxis配置,新增zeroline=False:

yaxis=dict(
    title=None,
    showgrid=False,
    showline=False,
    zeroline=False  # 隐藏零刻度线
),

同时建议检查本地与部署环境的Plotly、Streamlit版本是否一致,版本差异也可能导致渲染效果不同。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 14:18:10