Hi, all. I’m trying to create an image slide show using st.slider and st.pyplot, code like:
# create a bunch of figures
figs = [plt.figure() for _ in range(10)]
# use st.pyplot
st.pyplot(figs[index])
# use st.slider to select
index = st.slider('figure index', 0, 10)
It works fine but too slow. It takes about 2~3 seconds to switch to the next figure after each sliding.
Is there any solution to accelerate this slideshow.
Also, you may want to look at tabs as an alternative. That will cause all charts to render up front and just switch views without being interpreted as a change in value by Streamlit.
Expanding on the pyplot example from the Streamlit Documentation:
import streamlit as st
from matplotlib import pyplot as plt
import numpy as np
@st.experimental_memo
def get_numbers():
sets = []
for i in range(10):
sets.append(np.random.normal(1,1,size=100))
return sets
sets = get_numbers()
@st.experimental_memo
def get_plot(i):
fig, ax = plt.subplots()
ax.hist(sets[i], bins=20)
return fig
# create a bunch of figures
figs = [get_plot(i) for i in range(10)]
with st.expander('Using a slider'):
plot = st.container()
# use st.slider to select
index = st.slider('figure index', 1, 10)
# use st.pyplot
with plot:
st.pyplot(figs[index-1])
with st.expander('Using tabs'):
tabs = st.tabs(list(np.array(range(1,11)).astype(str)))
for i in range(10):
tabs[i].pyplot(figs[i])
Thanks for stopping by! We use cookies to help us understand how you interact with our website.
By clicking “Accept all”, you consent to our use of cookies. For more information, please see our privacy policy.
Cookie settings
Strictly necessary cookies
These cookies are necessary for the website to function and cannot be switched off. They are usually only set in response to actions made by you which amount to a request for services, such as setting your privacy preferences, logging in or filling in forms.
Performance cookies
These cookies allow us to count visits and traffic sources so we can measure and improve the performance of our site. They help us understand how visitors move around the site and which pages are most frequently visited.
Functional cookies
These cookies are used to record your choices and settings, maintain your preferences over time and recognize you when you return to our website. These cookies help us to personalize our content for you and remember your preferences.
Targeting cookies
These cookies may be deployed to our site by our advertising partners to build a profile of your interest and provide you with content that is relevant to you, including showing you relevant ads on other websites.