Возможно ли, чтобы виджет с множественным выбором в Streamlit динамически влиял на график на основе ввода пользователя?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Возможно ли, чтобы виджет с множественным выбором в Streamlit динамически влиял на график на основе ввода пользователя?

Сообщение Anonymous »

Я запускаю код на странице своего приложения Streamlit, где ввожу имя какого-то организма, получаю доступ к API, а затем получаю список функций, соответствующих тому, что я пытаюсь построить.
Теперь у меня есть некоторая входная информация, которую пользователь должен ввести заранее, и которая всегда включается в график, а информация, которую я получаю от API, — это просто дополнительная информация, которую пользователь может захотеть включить. Но есть организмы, у которых API практически не содержит информации о функциях, не работает или иногда API просто не работает и к нему невозможно получить доступ, и в этом случае количество функций, которые можно интегрировать в график, либо равно нулю, либо ограничено. .
Итак, после создания графика мне будет представлен виджет с множественным выбором, наполненный всеми функциями, полученными из API. Затем пользователь может выбрать, какие функции он может захотеть исключить, что, в свою очередь, заново создает график с выбранными функциями.
Проблема в том, что я не знаю, как лучше всего это сделать. этот. У меня есть переменная списка selected_features_list, созданная в session_state как пустой список, и я пытаюсь передать список имен объектов в этот список, а затем передать его в свою функцию плоттера, но для по какой-то причине каждый раз, когда я меняю это, session_state сбрасывается, и мне приходится заново создавать график.
Мой код в настоящее время настроен примерно так:
Мой код в настоящее время настроен примерно так:
р>

Код: Выделить всё

import streamlit as st

if st.button("Generate Plot", type='primary'):
with st.spinner('Generating plot, please wait...'):
genome_information = format_genome_data(st.session_state.organism_name)
features_list = import_features_from_API(st.session_state.organism_name)
disabled_features = True
if len(features_list) == 0:
st.session_state.selected_features_list = []
elif len(features_list) > 0:
st.session_state.selected_features_list = features_list
disabled_features= False

figure = plot_organism_genome_structure(organism= st.session_state.organism_name,
features_list= st.session_state.features_list)
st.plotly_chart(figure, theme=None)
st.multiselect("Select the features you want to include in or exclude from the plot:", options = features_list, disabled=disabled_features, key='selected_features_list')
if len(st.session_state.selected_features_list) != len(features_list):
figure = plot_organism_genome_structure(organism= st.session_state.organism_name,
features_list= st.session_state.features_list)
st.plotly_chart(figure, theme=None)
Итак, как мне заставить работать виджет с множественным выбором, чтобы он мог обновлять список выбранных функций, что, в свою очередь, обновит график?

Подробнее здесь: https://stackoverflow.com/questions/790 ... ffect-a-pl
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»