Skip to content

Concepts


1. Import

import streamlit as st

2. Display

  • Text/Title

    import streamlit as st
    
    st.title("Welcome to streamlit")
    
    st.text('Happy Learning!')
    

  • Header/Subheader

    import streamlit as st
    
    st.header('Header')
    
    st.subheader('Subheader')
    

  • Markdown

    import streamlit as st
    
    # Basic markdown
        st.markdown('Header')
    
    # Advanced
        html_temp = """
        <div style="background-color:tomato;padding:10px">
        <h2 style="color:white;text-align:center;">Markdown html Example </h2>
        </div>
        """
        st.markdown(html_temp,unsafe_allow_html=True)
        st.markdown('<i class="material-icons">{}</i>'.format("people"), unsafe_allow_html=True)
    
    # Load stylesheet
        with open(style.css) as f:
            st.markdown('<style>{}</style>'.format(f.read()), unsafe_allow_html=True)
    

  • Latex

    import streamlit as st
    
    st.latex(r''' e^{i\pi} + 1 = 0 ''')
    
    st.latex(r'''
                ... a + ar + a r^2 + a r^3 + \cdots + a r^{n-1} =
                ... \sum_{k=0}^{n-1} ar^k =
                ... a \left(\frac{1-r^{n}}{1-r}\right)
                ... ''')
    

  • Write

    import streamlit as st
    
    st.write('Example text')
    
    st.write(['st', 'is <', 3])
    
    st.write("✔️ Time up!")
    

  • Code

    import streamlit as st
    
    st.code('s="Happy Learning!" for i in range(0,10): print(s)')
    
    st.echo()
    
    with st.echo():
            text = 's="Happy Learning!" for i in range(0,10): print(s)'
            st.write(text)
    

  • Help

    import streamlit as st
    
    st.help(range)
    

3. Data

    import streamlit as st
    import pandas as pd
    import numpy as np

    df1 = pd.DataFrame(
    np.random.randn(50, 5),
    columns=('col %d' % i for i in range(5)))
    my_table = st.table(df1)

    st.write('Dataframe example')
    st.dataframe(df1)

    data = {'1':"True",'2':"True",'3':"False"}
    st.json(data)

4. Media

    import streamlit as st
    from PIL import Image
    import urllib.request

    # Basic image
    st.image('./image.png')

    img = Image.open("download.jfif") #open the image stored in specified location

    #Opens the image from the url
    img = Image.open(urllib.request.urlopen("https://mms.businesswire.com/media/20200616005364/en/798639/22/Streamlit_Logo_%281%29.jpg"))

    st.image(img, width=300, caption="Simple Image")


    # Video playing
    vid_file = open("videofile.mp4","rb").read() #play the video stored in specified location
    st.video(vid_file)

    #Audio
    audio_file = open('myaudio.ogg', 'rb')
    audio_bytes = audio_file.read()
    st.audio(audio_bytes, format='audio/ogg')

5. Charts

    import streamlit as st
    import numpy as np
    import matplotlib.pyplot as plt

    st.line_chart({"data": [1, 5, 2, 6, 2, 1]})
    st.area_chart({"data": [1, 5, 2, 6, 2, 1]})
    st.bar_chart({"data": [1, 5, 2, 6, 2, 1]})

    arr = np.random.normal(1, 1, size=100)
    fig, ax = plt.subplots()
    ax.hist(arr, bins=20)
    st.pyplot(fig)

    st.altair_chart(data)
    st.vega_lite_chart(data)
    st.plotly_chart(data)
    st.bokeh_chart(data)
    st.pydeck_chart(data)
    st.deck_gl_chart(data)
    st.graphviz_chart(data)
    st.map(data)

6. Widgets

    import streamlit as st

    st.button('Click')
    st.checkbox('Check the checkbox')
    st.radio('Radio Button',[1,2,3])
    st.selectbox('Select', [1,2,3])
    st.multiselect('Multiselect', [1,2,3])
    st.slider('slide',min_value=0, max_value=10)
    st.text_input('Enter Username')
    st.number_input('Enter a Number')
    st.text_area('Enter Text Here!')
    st.date_input('Date Input')
    st.time_input('Time entry')
    st.file_uploader('File Uploader')
    st.beta_color_picker('Select color')

7. Sidebar

    import streamlit as st
    st.sidebar.<widget>
    <widget> : button, checkbox, radio, selectbox, multiselect, slider, text_input, number_input, text_area, date_input, time_input

8. Control Flow

    import streamlit as st
    st.stop()

9. Progress Bar

    import streamlit as st
    import time

    # Sample Progress bar
    my_bar = st.progress(0)

    for percent_complete in range(100):
        time.sleep(0.1)
        my_bar.progress(percent_complete + 1)

    with st.spinner('Wait for it...'):
        time.sleep(5)
    st.write('Done!')

10. Status Messages & Others

    import streamlit as st

    st.error('Error Message')
    st.warning('Warning Message')
    st.info('Info Message')
    st.success('Success Message')
    st.exception("IndexError('list out of index')")
    st.balloons()

    st.empty()
    place_holder = st.empty()
    place_holder.text('Replaced!')

    st.get_option(key)
    st.set_option(key)

    st.beta_set_page_config(layout='wide')

11. Cache or Optimize

    import streamlit as st

    @st.cache
    func()

12. Magic Command

    import streamlit as st

    '''
    # Markdown magic

    This is some _**text**_.
    '''

    df = pd.DataFrame({'col1': [40,54,67]})
    df  # <-- df values

    x = 100
    'x', x  # <-- 'x' and its value

13. Apps Deployment

  • Using StreamlitShare

    Prerequisites

    - Requirements.txt file
        - Github account
        - Access to share.streamlit.io
    
    Info
    - Refer the link for more details [Link](https://learnups2020.wordpress.com/2020/10/24/deployment-using-streamlit-sharing/)
    
  • Using Heroku

14. References