如何移除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位水平黑线

- 异常效果(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
相关产品推荐
相关产品推荐

