Теперь у меня есть некоторая входная информация, которую пользователь должен ввести заранее, и которая всегда включается в график, а информация, которую я получаю от 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