Streamlit App for Word Clouds
Learn how to build a complete web app using Streamlit.
We'll cover the following
Load the data
Before writing any code for the Streamlit app, we need to load the data from our JSON files.
def load_data():
with open('data/weekly.json','r') as file:
weekly_keywords = json.load(file)
with open('data/combined.json') as file:
combined_keyword = json.load(file)
dates = [date for date in weekly_keywords]
return combined_keyword,weekly_keywords,dates
Select the image mask
We’ll also return all the dates for which we collected the data.
st.title("2020 Word Clouds based on Google Keyword and Twitter Hashtag trends")
image = st.sidebar.selectbox(label='Select Image Mask',options=
['default','twitter','hashtag','heart'])
combined_keyword,weekly_keywords,dates = load_data()
A sidebar with a drop-down menu will be created for the user to select the image mask they want to use.
For the 2020 word cloud, we’ll set the maximum number of words to 800
and maximum font size to 15
.
st.header("Entire Year")
wordcloud = get_word_cloud(image,combined_keyword,800,15)
fig1 = plt.figure()
plt.imshow(wordcloud)
plt.axis("off")
st.pyplot(fig1)
Select the date
For the weekly word cloud, we can increase the font size because we don’t have many unique words. We’ll also create a drop-down menu for the user to select a date.
st.header("Weekly")
date = st.selectbox(label='Select Date',options=dates)
keywords = weekly_keywords[date]
wordcloud = get_word_cloud(image , keywords,200,25)
fig2 = plt.figure()
plt.imshow(wordcloud)
plt.axis("off")
st.pyplot(fig2)
Let’s run the complete Streamlit web app to generate and display word clouds.
Get hands-on with 1400+ tech skills courses.