streamlit.components.v1 里的components没有是怎么回事

关注引自免费微信小程序:皆我百晓生
在Streamlit v1中,streamlit.components.v1确实包含了一些用于创建和显示可重用组件的功能。然而,在Streamlit的后续版本(例如v0.67及更高版本)中,组件功能被重新设计并整合到了核心库中。这意味着你不再需要导入streamlit.components.v1来使用组件。
在新版本的Streamlit中,你可以直接使用st.beta_columns()、st.columns()或st.container()等方法来创建并放置多个图表或其他元素。对于你提供的代码片段,这里有一个对应的更新版代码示例:
import streamlit as st
# 创建一个两列布局
col1, col2 = st.beta_columns(2)
# 在第一列中添加第一个条形图
with col1:
p1 = chart.chart_plot('barl').render_embed()
st.html(p1, width=1000, height=500, scrolling=True)
# 在第二列中添加第二个条形图
with col2:
p2 = chart.chart_plot('bar2').render_embed()
st.html(p2, width=1000, height=500, scrolling=True)
# 添加第三个饼状图到主面板
p3 = chart.chart_plot('pie').render_embed()
st.write(p3, width=1000, height=500, scrolling=True)
这段代码首先导入了streamlit模块,并通过st.beta_columns(2)创建了一个包含两个子列的布局。然后,我们在每个子列中添加了一个条形图,并在主面板上添加了饼状图。注意,我们直接使用了st.html()函数并将渲染后的嵌入代码传递给它,而不需要指定宽度、高度和滚动属性,因为这些参数可以通过st.write()中的关键字参数设置。
如果你正在使用的Streamlit版本已经包含了这些更改,那么你应该遵循上述的新方法。如果你仍然想使用旧版本的组件特性,可能需要回退到Streamlit的早期版本。不过,我建议你始终使用最新版本的Streamlit,因为它通常包含性能改进和新的功能。