Spaces:
Sleeping
Sleeping
import streamlit as st | |
st.set_page_config(page_title="Widget Exploration", page_icon=":1234:") | |
st.sidebar.header("Widget Exploration") | |
st.header("Simple Widgets") | |
st.write("How great are you feeling right now?") | |
sentiment_mapping = ["one", "two", "three", "four", "five"] # map to these numers | |
selected = st.feedback("stars") | |
if selected is not None: # make sure we have a selection | |
st.markdown(f"You selected {sentiment_mapping[selected]} star(s).") | |
if selected < 1: | |
st.markdown('Sorry to hear you are so sad :(') | |
elif selected < 3: | |
st.markdown('A solid medium is great!') | |
else: | |
st.markdown('Fantastic you are having such a great day!') | |
st.header("Tying Widgets to Pandas/Matplotlib Plots") | |
# we can also tie widget interaction to plots | |
# first, let's just try a simple plot with pandas | |
import pandas as pd | |
import matplotlib.pyplot as plt | |
df = pd.read_csv("https://raw.githubusercontent.com/UIUC-iSchool-DataViz/is445_data/main/mobility.csv") | |
# let's first make a plot | |
fig,ax = plt.subplots() # this changed | |
df.groupby('State')['Mobility'].mean().plot(kind='bar',ax=ax) | |
st.pyplot(fig) # this is different | |
# now, let's remake this plot, but allow for some interactivity by only | |
# selecting a subset of states to plot | |
# multi-select | |
states_selected = st.multiselect('Which states do you want to view?', df['State'].unique()) | |
if len(states_selected) > 0: # if selected | |
df_subset = df[df['State'].isin(states_selected)] | |
fig2,ax2 = plt.subplots() # this changed | |
df_subset.groupby('State')['Mobility'].mean().plot(kind='bar',ax=ax2) | |
st.pyplot(fig2) # this is different | |
else: # otherwise plot all states | |
fig2,ax2 = plt.subplots() # this changed | |
df.groupby('State')['Mobility'].mean().plot(kind='bar',ax=ax2) | |
st.pyplot(fig2) # this is different | |