python 按需显示新图表或表格

yb3bgrhw  于 2023-03-16  发布在  Python
关注(0)|答案(1)|浏览(117)

我在网上找到的所有关于streamlit的教程都是为了创建一个固定类型的表/图表等,也就是说,开发人员将编写代码来显示一个带有固定查询的表,以提取数据。
成像我有这样的使用情形:
1.用户在聊天窗口中键入内容:显示过去3年每个国家的人口增长。然后显示此折线图
1.用户下一次键入:显示过去3年每个国家的美元出口额。2然后我们显示另一个折线图。3注意第二个图表基本上是从底部向上显示的,并像聊天窗口一样将第一个图表推到上面。
我如何使用streamlit来实现这个呢?我对使用python framework的其他想法持开放态度

fkaflof6

fkaflof61#

根据澄清意见,以下是如何处理累积事件的显示:
诀窍是使用会话状态。你需要初始化一些数据对象并将其存储在会话状态中。然后,随着每次用户交互,回调可以附加到该数据对象。因此,当你显示它时,你会得到累积的结果。
玩具示例:

import streamlit as st

if 'chat' not in st.session_state:
    st.session_state.chat = [('A','Hello.')]

def submit():
    st.session_state.chat.append(('B',st.session_state.B))
    st.session_state.chat.append(('A','Some response.'))
    # Clear the text input widget for convenience
    st.session_state.B = ''

for entry in st.session_state.chat:
    st.write(f'{entry[0]}: {entry[1]}')

st.text_input('B\'s Response', key='B', on_change=submit)

相关问题