How to build Interactive dashboards in Python using Streamlit

Introduction

If you are working on a visualisation project and want to demo your findings, or if you are hitting the job market and want to create some portfolio projects – interactive dashboards are a great way to provide the information in a good accessible way.

We will be using Python and Streamlit for our interactive dashboards today.

Streamlit

Streamlit’s is an open-source app framework which makes the life easy for data scientist by exploring and understanding data via a beautiful dashboard.

Setting up Streamlit

Let’s first Install Streamlit  to our system and then run the hello command just to verify that everything is working. We can kill the running app at any time by Ctrl+c in the terminal.

$ pip install streamlit
$ streamlit hello

Import Libraries

After installing Streamlit, lets import all the libraries we will be using.

import streamlit as st
import pandas as pd
import numpy as np
import pydeck as pdk
import altair as alt
from datetime import datetime

 Display Text in different ways

Streamlit makes it easy for us to clean, share and visualise data. We can write text to explain our  findings in different ways like providing title to the graph, giving heading or subheading or we can explain the details of the graph or data.

  1. Title : To set app’s title, we can use st.title()
  2. Header : We can use st.header() for heading and st.subheader() for sub heading
  3. Text : In order to write the description for a particular graph or data, we can use st.text() . Streamlit also supports markdown so if we want to display our text as markdown we can use st.markdown()
  4. Latex: Streamlit also display mathematical expressions formatted as LaTeX.  by using st.latex()
  5. Write : We can display everything like plotly graph, data frame, functions, error, model etc. by using st.write() 

Fetch Data

Now we have installed app and import all the libraries, the very next step is to load the data. Here we will use Covid19 data.

Get this dataset from Github.

Data Caching

Streamlit provides a caching mechanism which allows our app to stay high-performing even when we are loading data from the web or manipulating large datasets.

Different widgets

Widgets help us to filter our data or visualisation directly into our apps with buttons, sliders, selectbox, and more. Let’s have a look to few examples.

Multiselect

We can select or remove rows from a list of column. Here we are creating Country name widget where we can select country/countries to visualise data/graph only for those selected values.

SelectBox

 

Display graphs and Maps

Streamlit supports a lot of popular visualization libraries like Matplotlib, Altair, deck.gl, and more. Here is the more details on  displaying charts.  

Bar charts

Altair Charts

Animated Map

All the Code

All the code for this task can be found here : Code.

Its a wrap

Thats all for this post. In the next post we will talk about productionizing these dashboards live, so that everyone else can access your dashboards as well. Hope it was helpful.

Leave a Reply

Your email address will not be published. Required fields are marked *