Building a Covid-19 Dashboard utilizing Streamlit – A Data Visualization Tool

In data visualization, dashboards are the Graphical User Interfaces which show information in an informative and extremely interactive approach. It incorporates varied plots reminiscent of bars, pies, line charts and so on. which are really the visualizations of a dataset by which we are able to derive some helpful data. Dashboards are helpful as a result of they’re straightforward to know and supply us with a transparent image of the important thing efficiency indicators.

Streamlit is an open-source python library that enables us to construct stunning, extremely interactive, and informative dashboards simply. It additionally permits us to create customized primarily based Machine Learning and Data Science functions. Every time we save the code streamlit runs from high to backside and shows the modifications in seconds as a result of it’s extremely fast.  The UI of streamlit is visually interesting and already loaded in order that we don’t have to jot down the code concerning the UI of the app.

Throughout this text, we are going to cowl the next factors:-

  • Installing streamlit
  • Building streamlit dashboard functions
  • Visualizing insights by means of streamlit dashboard

In order to make use of streamlit, we have to set up it utilizing  pip set up streamlit

Before constructing our Streamlit Dashboard allow us to analyze the pattern functions which are pre-loaded in streamlit. For this, we have to open the anaconda command immediate and run streamlit utilizing the command given beneath.


streamlit hey
streamlit dashboard






This will run streamlit on the native URL talked about.

You can choose any demo you wish to discover and undergo completely different documentation that’s offered there on the homepage. Now, allow us to construct our personal dashboard of Covid-19 in India.

For creating the script for streamlit it’s worthwhile to have a code editor put in, I personally desire “Atom” however you should use any code editor. The dataset I’m utilizing right here might be downloaded from the online repository


a. Importing Libraries

We will begin by importing some essential libraries which we can be utilizing. We want libraries to load our information and to visualise the info.

import streamlit as st
import pandas as pd
import numpy as np
import plotly.specific as px
from plotly.subplots import make_subplots
import plotly.graph_objects as go
import matplotlib.pyplot as plt

b. Importing the dataset

df = pd.read_csv(“C:/Users/covid_dataset.csv’’)

c. Building the dashboard utility

In this dashboard, we are going to visualize the instances of Covid-19 in India by means of completely different visualization charts.

Streamlit has predefined capabilities that are very useful in creating dashboards and displaying the info fantastically. 

  1. st.title()  and st.markdown() are used for headings and markdowns respectively.
  2. st.sidebar() is used for displaying information on the sidebar.
  3. st.dataframe() to show the info body 
  4. to show the map in only a single line code and so on.

There are many extra capabilities in streamlit and we are going to attempt to cowl most whereas creating our dashboard.

Starting with setting the title and the sidebar title for streamlit dashboard

st.title("Covid-19 Dashboard For India")
st.markdown('The dashboard will visualize the Covid-19 Situation in India')
st.markdown('Coronavirus illness (COVID-19) is an infectious illness brought on by a newly found coronavirus. Most individuals contaminated with the COVID-19 virus will expertise gentle to reasonable respiratory sickness and get well with out requiring particular remedy.')
st.sidebar.title("Visualization Selector")
st.sidebar.markdown("Select the Charts/Plots accordingly:")

A. Visualization (part-1: Cases utilizing bar chart and pie chart)

In this half, we are going to create a widget that may show the info in a bar plot and pie chart kind. While creating widgets in streamlit we should always preserve in my about allotting a novel key for comparable varieties of widgets others streamlit received’t be capable to differentiate between the widgets.

The code beneath will create our first a part of the visualization.

choose = st.sidebar.selectbox('Visualization kind', ['Bar plot', 'Pie chart'], key='1')
if not st.sidebar.checkbox("Hide", True, key='1'):
    if choose == 'Pie chart':
                        st.title("Selected top 5 cities")
               fig = px.pie(df, values=df['Confirmed'][:5], names=df['State'][:5], title="Total Confirmed Cases")

                       if choose=='Bar plot':
       st.title("Selected Top 5 Cities")
       fig = go.Figure(information=[
       go.Bar(name="Confirmed", x=df['State'][:5], y=df['Confirmed'][:5]),
       go.Bar(identify="Recovered", x=df['State'][:5], y=df['Recovered'][:5]),
       go.Bar(identify="Active", x=df['State'][:5], y=df['Active'][:5])])
streamlit dashboard

B. Visualization (half 2: energetic and  confirmed instances on time sequence)

For this, we want one other dataset which incorporates the date clever instances registered in India in order that we are able to create a line plot to visualise the pattern of Covid-19.

The code beneath will present us with a brand new widget which is able to present us the time-series visualization.

 df2 = pd.read_csv('C:/Users/Divya/timeco.csv')
df2['Date'] =  df2['Date'].astype('datetime64[ns]')
select1 = st.sidebar.selectbox('Select', ['Confirmed', 'Recovered'], key='2')
if not st.sidebar.checkbox("Hide", True, key='3'):
    if select1 == 'Confirmed':
        fig = px.line(df2, x="Date", y="Cases")
    elif select1 == 'Recovered':
        fig = px.line(df2, x="Date", y="Recovered")














C. Visualization (part-3: Area Charts)

In the third half, we tried making a visualization generally known as space chart which is able to permit us to visualise the COVID unfold in keeping with space charts.

See Also

Beginners Guide To Seaborn

Don’t neglect to set the distinctive key for the widgets. 

select2 = st.sidebar.selectbox('Select', ['Confirmed', 'Recovered'], key='3')
if not st.sidebar.checkbox("Hide", True, key='4'):
        if select2 == 'Confirmed':
        fig =, x="Date", y="Cases")
         elif select1 == 'Recovered':
               fig =, x="Date", y="Recovered")





Similarly, we are able to create as many sections as we wish and visualize completely different elements of a dataset utilizing streamlit.

While making dashboards utilizing streamlit you’ll understand that shows the modifications as quickly as you save them which helps in visualizing them concurrently and saves a variety of time. This dashboard is simply an instance of what streamlit can do, you’ll be able to strive creating streamlit dashboards along with your dataset and make visually interesting charts and graphs.

Now allow us to take a look on the Dashboard we now have created. For working our dashboard we have to run a python script utilizing streamlit. I saved my file named ‘’. You can select no matter identify you need and launch it by working the beneath command within the Anaconda command immediate.

streamlit run
streamlit dashboard






This is how the homepage of our app is wanting, we are able to choose completely different choices and visualizations from the sidebar and see how streamlit shows it.

These graphs and plots are created utilizing Plotly that’s the reason they’re extremely interactive and might be downloaded simply. 

Streamlit additionally permits us to report a screencast of our app in order that we are able to share what we now have created with our buddies, colleagues, and so on. 

streamlit dashboard





Streamlit is taken into account to be the fastest-growing Machine Learning and Data Science app constructing platform. It is open-source and the neighborhood is updating it often with new updates. It is taken into account to be among the finest dashboarding instruments. Now as you’ve got realized how one can use streamlit go forward and preserve experimenting with the completely different datasets and create new apps and dashboards.

Provide your feedback beneath


If you liked this story, do be part of our Telegram Community.

Also, you’ll be able to write for us and be one of many 500+ consultants who’ve contributed tales at AIM. Share your nominations here.


Please enter your comment!
Please enter your name here