如何在Streamlit应用中让Plotly图表根据屏幕分辨率自动调整尺寸
Plotly+Streamlit动态宽度适配方案
- 第一步配置Plotly图表响应式属性:给你的figure对象执行
fig.update_layout(autosize=True),关闭固定宽高限制,允许图表自动适配父容器尺寸。 - 第二步调用Streamlit渲染API时开启容器适配:调用
st.plotly_chart()时传入参数use_container_width=True,此时图表会默认占满父容器100%的宽度,无需设置任何像素值。 - 如果需要自定义占容器宽度的比例(例如80%、70%等),直接使用Streamlit的列布局实现即可,示例代码如下:
import streamlit as st import plotly.express as px # 示例图表生成 df = px.data.iris() fig = px.scatter(df, x="sepal_width", y="sepal_length") # 开启自动适配 fig.update_layout(autosize=True) # 按比例拆分容器宽度,比如80%宽度留给图表,剩余20%留空 # st.columns的数值列表代表每一列的宽度占比,以下配置总占比为5,图表占4即80% col_chart, col_empty = st.columns([4, 1]) with col_chart: st.plotly_chart(fig, use_container_width=True)
注意:不要同时给figure设置固定的
width/height像素参数,否则会导致自动适配配置失效。
内容的提问来源于stack exchange,提问作者MYK
相关产品推荐
相关产品推荐

