Machine Learning & Big Data Blog

Using Tableau to Track Coronavirus

3 minute read
Walker Rowe

Today, when all any of us can do is watch Coronavirus news, we show how to map the coronavirus using Tableau.

We use data gathered by the John Hopkins University School of Engineering. They have built this dashboard which has gained a wide following among news outlets around the world.

(This article is part of our Tableau Online Guide. Use the right-hand menu to navigate.)

John Hopkins Coronavirus Github

John Hopkins uploads that data to their github repository here every day. John Hopkins as of March 1st started adding longitude and latitude to the data feed.

Tableau is well-suited to work with geographical data. We can upload it to Tableau and quickly turn it into the same kind of chart that John Hopkins has built. Then we can build a chart that looks much like what John Hopkins has built. Tableau knows that we want virus count by country. It’s fairly effortless to produce this kind of chart.

Our chart will look like this:


Download the Virus Data and Upload to a Database

To start, download the latest data:


We are using PostgreSQL. You can use any of the databases that Tableau supports.

From the psql shell create a database, then create the coronavirusgeo database;

create table coronavirusgeo
( provinceState VARCHAR(50),
CountryRegion VARCHAR(50),
LastUpdate date,
Confirmed numeric,
Deaths numeric,
Recovered numeric,
Latitude numeric,
Longitude numeric);

Now load that data from the csv file into PostgreSQL:

COPY coronavirusgeo FROM '/home/ubuntu/Downloads/03-16-2020.csv' DELIMITER ',' CSV HEADER;

You do all that as the admin user. But you don’t want to use the admin account to connect to your PostgreSQL server from Tableau. So grant a designated user access to that database and table.

grant all privileges on database virus to walker;
grant all privileges on table coronavirusgeo to walker;

Connect the Database To Tableau and Create the Worldmap Chart

Connect the PostgreSQL database to Tableau. Then start adding fields on the chart.
If you uploaded more than one daily report then you need to set a filter to select just that one day.
Set the filter 3/16/2020:

Then drag the fields longitude and lattitude to the columns and rows. Tableau will recognize these fields are in your data when you first connect to the coronavirus table and will assume that you want to map this data.

If it has not already done so, kick the World View chart type:

Add the fields below to the chart and change deaths and confirmed to dimension from sum.

Now you can zoom in on any part of the world and take a look. It displays numbers for the area on which you click.

Learn ML with our free downloadable guide

This e-book teaches machine learning in the simplest way possible. This book is for managers, programmers, directors – and anyone else who wants to learn machine learning. We start with very basic stats and algebra and build upon that.

These postings are my own and do not necessarily represent BMC's position, strategies, or opinion.

See an error or have a suggestion? Please let us know by emailing

Business, Faster than Humanly Possible

BMC works with 86% of the Forbes Global 50 and customers and partners around the world to create their future. With our history of innovation, industry-leading automation, operations, and service management solutions, combined with unmatched flexibility, we help organizations free up time and space to become an Autonomous Digital Enterprise that conquers the opportunities ahead.
Learn more about BMC ›

About the author

Walker Rowe

Walker Rowe is an American freelancer tech writer and programmer living in Cyprus. He writes tutorials on analytics and big data and specializes in documenting SDKs and APIs. He is the founder of the Hypatia Academy Cyprus, an online school to teach secondary school children programming. You can find Walker here and here.