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

多页面Streamlit应用侧边栏与3D立方体比例失调问题求助

解决Streamlit多页面应用中3D立方体与侧边栏比例失调问题

针对streamlit v1.13.0、Python 3.8环境,可通过以下方案调整元素比例:

一、压缩侧边栏宽度

通过自定义CSS强制修改侧边栏默认宽度:

import streamlit as st

# 注入自定义CSS调整侧边栏宽度
st.markdown("""
<style>
    section[data-testid="stSidebar"] {
        width: 220px !important;  /* 按需设置,默认宽度约300px */
    }
</style>
""", unsafe_allow_html=True)

二、放大3D立方体及文字尺寸

根据你使用的3D绘图库,对应调整元素大小:

1. Plotly场景调整

如果用Plotly生成立方体,修改布局参数拉近视角、放大尺寸:

import plotly.graph_objects as go

# 你的立方体生成代码
fig = go.Figure(data=[go.Mesh3d(...)])
fig.update_layout(
    scene=dict(
        camera=dict(eye=dict(x=1.5, y=1.5, z=1.5)),  # 调整相机视角拉近立方体
        aspectmode='cube',  # 保持立方体比例
        xaxis=dict(showticklabels=False),
        yaxis=dict(showticklabels=False),
        zaxis=dict(showticklabels=False)
    ),
    width=700,  # 设置图表宽度
    height=700,  # 设置图表高度
    margin=dict(l=0, r=0, b=0, t=0)  # 去除边距最大化显示空间
)
st.plotly_chart(fig, use_container_width=False)  # 禁用容器自适应,用自定义尺寸

立方体上的文字标注可通过textfont参数放大:

go.Scatter3d(
    text="标注内容",
    textfont=dict(size=18),  # 增大字体尺寸
    ...
)

2. PyVista场景调整

如果用PyVista渲染立方体,直接设置窗口和文字大小:

import pyvista as pv

plotter = pv.Plotter(window_size=[700, 700])  # 设置渲染窗口尺寸
plotter.add_mesh(cube)  # 添加你的立方体模型
plotter.add_text("标注文字", font_size=18, position='upper_right')  # 放大文字
plotter.show(jupyter_backend='static')
st.pyvista_chart(plotter)

三、整体布局协调

  1. 用st.columns划分主页面区域,给3D图表分配足够空间:
# 侧边栏内容
with st.sidebar:
    st.title("侧边栏标题")
    # 其他侧边栏组件

# 主页面单栏占满剩余空间
col1, = st.columns([1])
with col1:
    st.subheader("3D立方体展示")
    st.plotly_chart(fig, use_container_width=True)
  1. 精简侧边栏内容,减少冗余元素,降低视觉占比。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 02:40:27