VizWiz

Launch, grow, and unlock your career in data
Showing posts with label heatmap. Show all posts

April 17, 2026

Build a Marginal Histogram with Map Layers in One Sheet

No comments
Most Tableau analysts have never heard of a marginal histogram — and even fewer know how to build one. In this video, I'll show you how to create this advanced visualization from scratch on a single sheet using Tableau's map layers feature.

This technique uses the "Flat Earth" concept to treat your entire canvas as a coordinate system, letting you draw fully custom polygon shapes — no extensions, no workarounds. We'll build a heatmap with bar charts on two axes simultaneously, all driven by calculated fields and LOD expressions.

We're using Trump's Truth Social posting data as the dataset, but the technique works with any time-based data you want to analyze by day and hour.

What you'll learn:
- How Tableau's map layers work and why they unlock charts that don't exist natively
- The Flat Earth coordinate system — how to turn any data into drawable polygons
- Building rectangle polygons using 5-point path calculations
- Creating marginal bar charts (vertical + horizontal) on the same sheet
- LOD expressions to normalize bar lengths across dimensions
- Cleaning up the view: hiding headers, labels, and axes for a polished final result

Download the workbook, data and all of the calculations - https://nlt.kit.com/histogram

-----

Want to go from good to elite in Tableau?
Join Next Level Tableau — 3 live classes per week, office hours, and a community of analysts who take their craft seriously. Use code AUSTIN for $50 off your first month.



August 15, 2024

How Popular is Your Birthday?

No comments
I love a chart where you don't need to write any commentary to understand the chart or to understand the analysis. This is one of those charts.

Click on your birthday to see how popular it is.

June 25, 2024

How to Create a 9-Box Matrix in Tableau

No comments

In this video, I show you how to build a 9-box matrix. 

These are commonly used in talent management and HR to map a company's workforce along two dimensions, potential and performance. 

Each of these two dimensions is split up into three categories, low, medium, and high, depending on the score. 

For each employee performance is then plotted horizontally and potential is plotted vertically. From there, we summarize the number of employees that fall within each box. 


April 6, 2024

How to Create a Heatmap in Tableau

No comments

A heat map is a good way of showing the patterns between 2 categories of data. They use color to encode the intensity of the relationships in the matrix.


March 1, 2023

#MakeoverMonday 2023 Week 9 - Are you drinking a safe amount of caffeine?

No comments
My goal for week 9 was to take this original matrix table...


and turn it into an interactive chart that allows the user to know if they are drinking a safe amount of caffeine. 

Check out Watch Me Viz below. Thanks to the feedback from viewers, we came up with the idea of letting the user pick (via parameters) their drink type, the drink size, and how many they drink per day. I calculated the mg of caffeine per ml and then multiplied that by the drink size and the number of drinks per day.

I spent time showing how to effectively use containers (you can never get enough practice with containers) and then showed how to create a mobile version as well. I think you'll learn a lot by watching and following along with the final build. 

If you are looking for 1:1 or group coaching sessions, I can help! Get in touch here.


November 22, 2022

How to Create a Full Year Calendar Heatmap in Tableau

No comments

Calendar heatmaps are a great way to visualize time-series data over an entire calendar year. Individual days are shaded on a light-to-dark gradient based on a measure that has been added to the visualization.

Creating a heatmap for a single month in Tableau is pretty straightforward. It gets a bit more complicated when you want to view an entire year at once. In this tip, I going to show you, step-by-step, how to create a full year calendar heatmap in Tableau. The workbook is below this video to download.


July 6, 2021

#MakeoverMonday Week 27 - If Only _____ Voted

No comments
This week's data set was one of the most interesting we've had for Makeover Monday. I found it fascinating to see some of the extreme polarization in the demographics of US voters in the 2020 election.

Resources:

2. Original Viz - https://bit.ly/3qQGsAo
3. How to Create a Trellis Chart - https://www.vizwiz.com/2021/02/trellis-chart.html
4. The Data Visualisation Catalogue - https://datavizcatalogue.com/ 

The original was really good and I didn't particularly want to create a map. Instead, I wanted to visualize all of the demographics at the same time to see if any patterns emerged. I find them a bit hard to see in what I created, but when I know what I'm looking for (e.g., women vs. men) then the contrasts really stand out.

I create the heatmap the way I did for two reasons:

  1. To see across each metric in order to identify consistent blue or red patterns for an entire demographic (e.g., early voting or urban).
  2. To see if individual States always voted for Biden or Trump irrespective of the demographic (e.g., CA, MA, MD for Biden or KS, KY, LA for Trump).

There are parts of Watch Me Viz you can skip, like early on when I build some maps and try to join the data together (unsuccessfully) or when I change the data to Excel format.

Thanks for tuning in! Interact with the viz by clicking on the image below or here.


May 25, 2021

How to Create a Marginal Histogram

No comments
Marginal histograms are a great choice when you want to display your data at different levels of aggregation in a single view. 

You can think of a marginal histogram as a heatmap with a histogram to the side and the top of the heatmap. Each graph provides a frequency distribution. 

In this example, I'm going to show you how to create a marginal histogram that displays a frequency distribution of the number of taxi rides by weekday and hour for January 2020 in NYC. 

Download the data here.

May 3, 2021

#MakeoverMonday 2021 Week 18 - Realized vs. Granted Compensation for CEOs

No comments
In this session I first reviewed the original visualization, then went into data discovery and analysis before finishing with a new visualization.  Watch the video and interaction with the visualization below.

Charts created: 
  1. Line Chart 
  2. Stepped Lines 
  3. Variance to baseline 
  4. Win/Loss chart 
  5. Comet Chart 
  6. Gantt Chart 
  7. Bar chart w/ reference line 
  8. Connected scatter plot 
  9. Slope Graph 
  10. Circle Timeline 
  11. Heatmap 

Resources: 
  1. Data Set - https://data.world/makeovermonday/2021w18 
  2. Chart chooser - https://datavizproject.com/



June 19, 2020

How to Get Your Data from Strava to Tableau

No comments
UPDATE: If you prefer video tutorials, there is now one on my YouTube channel here. The steps to get the links into the Simple Mass Downloader are done more efficiently in the video. There are several steps removed from the Excel and link uploads that are listed in the blog.




For a while now, I've been using this process for getting my data from Strava into Tableau like this:
  1. Download the data from Strava
  2. Prep it with Alteryx
  3. Visualize it in Tableau

In this post, I will outline the steps for getting your data from Strava into Tableau. I have also created a template with some sample vizzes for you to use. Download it from Tableau Public here.

I started revamping the process after wanting to create a small multiple view of all of my activities like this:


When I first started creating these, I took a process based on R and converted it into a workflow in Alteryx. This worked great, but there were two main drawbacks:

  1. My Alteryx workflow was a mess (I tinkered with it every month).
  2. Each of the routes would be adjusted to fit perfectly in a square.

This second problem meant that the routes were not scaled correct according to the curvature of the Earth. I then saw that Andy Cotgreave reached out to Ken Flerlage for help. They've written about their process here. Great! However, the calculations on this process make rendering the maps in Tableau very, very slow. Like REALLY slow.

That's where Alteryx comes in. I pushed all of the data processing into Alteryx, export each route as a single spatial object and every renders super fast. So if you're interested in getting all of your data out of Strava and visualizing it in Tableau, this process is for you. It does require Alteryx, but you could replicate the process in R.


TOOLS REQUIRED

  • A Strava account - NOTE: Make sure you are logged in to Strava throughout these steps.
  • Alteryx Designer
  • Tableau Desktop
  • Simple Mass Downloader Chrome extension

GET THE DATA FROM STRAVA

Step 1 - Login to Strava, click on your profile icon on the upper right, choose Settings.


Step 2 - On the My Profile page, click on My Account.


Step 3 - Scroll to the bottom and click on the Get Started button in the Download or Delete Your Account section.


Step 4 - In step 2, choose Request Your Archive. Don't do anything else on this page.




Step 5 - Check your email in a few minutes. When it arrives, click on the Download Archive button in the email.



Step 6 - Unzip the file that downloads. Open the folder that's created and you should see something like this.

The activities folder contains all of the raw files, but these won't all be in the same format, which means they're useless. The ONLY file we need is activities.csv. Open the CSV in Excel.

Step 7 - The only column we need in the file is the Activity ID column.


Delete all columns except Activity ID.


Step 8 - Insert a column to the left of Activity ID. I name it URL, but call it whatever you prefer. Then in cell A2 enter this formula: 

=CONCAT("https://www.strava.com/activities/",B2,"/export_gpx")

Then copy it down for all rows. This create a link to each activity in GPX format. If some of the activities don't have location data, don't worry about it. Those will simply not download in the process.

Choose the URL column header (the "A" above URL), choose Copy, then Paste Special => Values. Then delete column B (the column with the activity ids).



DOWNLOAD EACH ACTIVITY

Step 1 - Add the Simple Mass Downloader Chrome extension.


A new tab will open with a tutorial if you're interested to learn how it works.

Step 2 - Click on the extension button and you should see this screen.



Step 3 - Click on the hamburger on the right and choose Import URLs from local file.



Step 4 - Import the activities.csv file and the URLs will upload. This loads all of the files into the queue on the Download List tab. Choose the Select All box and they should all be highlighted.



Step 5 - Click on Start Selected and you'll see a bunch of files start downloading very quickly. Again, some of them will error out if the activity doesn't have location data. The files that download will have a green check next to them.



Phew! That might seem like a lot, but once you do it a couple times, the process is really quick.

Fantastic...all of the files are now downloaded. Onto Alteryx we go. 

ALTERYX PROCESS

Step 1 - Download the Strava Route Maps workflow from the Alteryx Gallery and open it in Alteryx Designer. If you can't download it from the Gallery, I have it on Google Drive here.


The Strava icon is a simple macro that will import all of the GPX files in the Directory you specify when you run the app. 

The workflow is split into four parts:

  1. Import the data, strip out the parts we need, then create points and lines.
  2. Normalize the data based on the calcs from Ken Flerlage, turn them into lines (one mark for each route rather than hundreds of point for each route) and export as a Tableau extract.
  3. For each point, calculate the distance, climb, etc. and extract all of the points.
  4. Take each of the points and turn them into lines.

Neither part 3 nor part 4 above normalize the data into squares. These are simply all of the data for each route.

Step 2 - Run the workflow as an App by clicking on the magic wand next to the Run button.


Step 3 - Choose the folder that contains all of the GPX files from the Simple Mass Downloader output. And click Finish.


This will generate three Tableau extracts that will load into the same directory as the GPX files. The workflow extracts them as TDE because Hyper files don't support polygons. Even though these aren't polygons, it makes me more comfortable that Tableau will read the files correctly.

Success!


Click the Clear button and then the OK button. Otherwise all three files will open in Tableau, which we don't want.

We're all done with Alteryx. Onto Tableau.


TABLEAU PROCESS

I've created a template for you to get started with. Download it from my Tableau Public profile here. Once you have done that, follow these steps.

Step 1- Open Tableau and right-click on each data source and pick Edit Data Source.


Step 2 - Click on the carrot next to the data source name and choose Edit Connection.


Step 3 - Navigate to the data source that downloaded from the Alteryx workflow. It will have the same name.



Step 4 - Go back to your worksheets and everything should update automatically. If not, right-click on the data source name and choose Refresh.

Step 5 - Customize the views as you see fit. That's it!

Here are the vizzes that I have included in the template.










October 31, 2018

Analyzing Pitcher Performance With Density Heatmaps

No comments
With Tableau 2018.3 comes density heatmaps, a feature I've been playing with quite a bit and love it for when I have a dense concentration of points and a regular scatterplot doesn't work well. Transparency can help with dense dots, but I think the heatmaps work much better.

To give it a test, I downloaded every pitch for Clayton Kershaw and Justin Verlander (two of the best pitchers in Major League Baseball) from 2008-2018 from the great stats website Baseball Savant. Every time I look at baseball data, I'm amazed at the detail of the stats covered; the data far exceeds anything that is covered in other sports.

After downloading the data, I built the small multiples view below for each pitcher so that I could see their progression through the years. Click on the images for the interactive versions. I love how the data shows me how each pitcher has gotten better with their "misses" through their careers. For example, when they throw sliders for balls, they now tend to miss below the strike zone. This is a great sign that they have command of their pitches and are less likely to miss in an area where the batter can take advantage.

The density heatmap feature will most likely be used by most people on maps, which makes sense, but consider looking at it as an alternative whenever you need to plot x/y coordinates and have lots of points to display.