The value of Viz Club

I’ve been very interested in pursuing a concept I originally saw in my twitter feed, a picture of Chris Love at a pub with a blurb about ‘Viz Club.’  Following it further, I want to say that there were some additional details about the logistics: but the concept was simple. A few people get together and collaborate on data viz.

Fast forward to the past 8 months and this has been a concept that has wracked my brain. The Phoenix TUG has space once a month on a Saturday. This had originally started as a “workshop” time slot, but as things evolved it didn’t feel quite right.  There was an overwhelming expectation to have curriculum and a survey of how effective the instruction was. Now let me say this: there is absolutely a time and place for learning Tableau and I am all about empowering individuals with the skills to use Tableau.  However, a voluntary community workshop should not be a surrogate for corporate sponsored training and isn’t conducive to building out a passion and enthusiasm filled community.

Anyway – the workshops weren’t right. They weren’t attracting the right types of people and more importantly it was isolating folks who were more advanced in their journey.  Essentially it needed a format change, one that could be accepting of all stages of the journey and one that attracted the passion.

Thus the idea kept echoing in my mind: Viz Club.

So coming out of April, the leap was made. I’ve been facilitating a series called “Get Tableau Fit” where I reconstruct one or two Workout Wednesday challenges during the first half of the TUG.  People were starting to see the value in the exercises (crazy that it took them so long!) and were getting more and more interested in trying them.  Interested, but still with a small amount of trepidation to participate. The final barrier for folks to participate?  Perhaps it was finding structured time.  Being officially assigned a task and a time to do the task.

Hence Viz Club.

So we held our first club session on Saturday, and I have to say it was very successful. I was very curious to the types of people who would show up, what their problems would be, and how the flow would play out. I couldn’t have been happier with the results.

From a personal productivity standpoint, it was well worth the time investment.  There’s something about being in a collaborative and open environment that eliminates potential mental blocks.  Within the first hour of Viz Club I had done one of my catch-up #MakeoverMonday vizzes.

More important than my productivity was the productivity in the room.  Throughout the day questions were being asked and answered.  One specific community member took a concept all the way through to a dashboard – significant breakthroughs within the time box of our 5 hours together.  I know everyone involved felt the power of the time we spent together and it’s something we’re going to continue.

Dealing with data density

Recently I was on a project that involved working with data centered around one value. You can imagine the type: something where there is an intended value, or a maximum expected value. A good example from the Superstore data set may be something like “days between order date and ship date.”

Typically you’ll come in to a data set of this type and the first thing to do is try to survey it. Describe it in a visual format to set the foundation for your data story audience.  Traditionally you’d probably want to go for something like a histogram, but a histogram is going to look really pointless. I’m sure you can imagine it now, 95-99% of data centered on one INTEGER value, the rest potentially obscuring the scene due to poor data entry or capture. Not the best way to start your story.

What’s potentially worse than the density around a given number is the notion that you’re looking for something within the confines of a narrow range that may be worth investigating further. So in this world, an ugly histogram isn’t going to drive you down the path of further enlightenment or relevant question asking and answering.

To combat the curse of this type of data, I went on a mission to make some alternative visualizations. Those beyond the histogram and boxplot- my self admitted favorite tools to quickly understand data sets.

My first choice was to add jitter. Jittering is a great tool that helps to showcase the density of data. You’re breaking up a traditional box or dot plot where values are plotted at the same point and adding a position dimension to the open axis. It can be really helpful for opening conversations with those seeing their data for the first time. And even more powerful when you add on a dimension to show small multiples of the same measurement and how the numeric outputs are influenced by the segmentation of your chosen dimension.

After attempting jittering, I noticed that because of the nature of my data – the natural indexing that was applied got skewed by the unique key I was indexing on.  Essentially there was an opportunity for an unintended inference from the jitter.  This led me to do restart the index for every value, making a histogram next to a box plot.  The dots were stacked on each other, mimicking bars.  This was pretty effective.  The centered nature of the data could be easily felt.

Last move was to make something even more abstract – what you may think of as a violin plot.  How I attempted this was from the perspective of a dot plot on an X axis.  However each dot is the binned result of the data values, with the number of data points within that bin representing the dot’s size.  I added on some transparency for additional visual aid – I think this can either be done from a reinforce the size of the dot perspective, or if your X axis has a natural good vs. bad association.  Harping back on the example of turn around time, you could envision that if you went from in control to out of control how powerful it could be.  I also added on different percentile lines to help affix the data spread.

Consider this post a draft in progress that will be updated with visuals.

Makeover Monday Week 6 – Chicago Taxis

This week’s data set presented itself with a new and unique challenge – 100 million plus records and a slight nod to #IronViz 2016.


Yep – Taxi data and lots of it, this time originating from Chicago.  The city of Chicago recently released 2013 to 2016 data on taxi rides and the kind folks at EXASOL took the opportunity to ingest the massive data set and make it available for #MakeoverMonday.  Synergy all around is felt: from EXASOL getting free visualizations, to data vizzers getting the opportunity to work in a data storage platform designed to make massive data vizzing possible, to understanding the unique challenges seen once you get such an explosively large data set into Tableau.

So how did I take on this challenge and what are some things I learned?  Well, first I had an inkling going in that this was going to be a difficult analysis.  I had some insight from an #IronViz contestant that maybe taxi data isn’t super interesting (and who would expect it to be).  There’s usual things we all likely see that mirror human events (spikes around holidays, data collected around popular locations, increases in $$), but beyond that it can be tough to approach this data set looking for a ‘wow’ moment.

To offset this, my approach was exploration.  Organize, separate, quantify, and educate the data interactor into the world of Chicago taxis.  Let’s use the size of the aggregations to understand what Chicago is like.  Essentially my end design was built to allow someone to safely interact with the data and get a sense for how things change based on several (strategically) predetermined dimensions.

The dimensions I chose to stick with for this visualization: focus on the community areas (pick up and drop off points), separate shorter trip lengths into 5 mile increments, and bucket time into 6 different chunks throughout the day.  (Admittedly the chunking of time was a rip off my own week 3 makeover where I used the same calculation to bucket time.)

Having the basic parameters of how the data was being organized, it was time to go about setting up the view.  I tried several combinations of both size, color, shape to facilitate a view I was committed to – using circles to represent data points for pickup locations by some time constraint.  I arrived at this as the final:


What I really like about it: red exposes the maximum for each year and ride length.  Demonstrates very quickly where “most rides” are.  There’s visual interest in the 10 to 15 mile range category.  There’s interest in the blank space – the void of data.  And this also makes a great facilitator of interactivity.  Consider each circle a button enticing you to click and use it to filter additional components on the right side.

Next were the burly maps.  Word of caution: do not use the unique identifier “trip id” and go plotting points.  You’ll get stuck quickly.  I’m not saying it is impossible, but I think to render the initial visualization it would take about an hour (based on my trying).  So instead of going to the trip id level, I took a few stabs at getting granular.  First step was, let’s just plot each individual day (using average lat/lon for pickup/dropoff spots).  This plotted well.  Then it was a continuation of adding in more and more detail to get something that sufficiently represented the data set, without crippling the entire work product.  I accomplished this by adding in both the company ID (a dimension of 121 members) and the accompanying areas (pickup/drop off area, 78 member dimension).  This created the final effect and should represent the data with a decent amount of precision.

Finally I went ahead and added in a few more visually interesting dot plots that highlighted maximums for specific areas.  This is ideally used in conjunction with the large table at left to start gathering more understanding.

I have to say – I am somewhat pleased with the result of this dashboard.  I’m not sure it will speak to everyone (thinking the massive left side table may turn folks off or have whispers of “wasted opportunity” to encode MORE information).  However – I am committed to the simplicity of the display.  It accomplishes for me something I was aiming to achieve – understanding several different geographical locales of Chicago and making something that could stand alone and provide “aha” moments.  In particular I’d like to know why Garfield Ridge overtook O’Hare for 10-15 mile fares in ’14 and ’15.  One for Google to answer.

Makeover Monday 2017 – Week 4 New Zealand Tourism

This week’s Makeover was addressing Domestic and International tourism trend in New Zealand.  No commentary provided with the data set, the original was just 2 charts left to the user to interpret.  See Eva’s tweet for the originals:

Going back to basics this week with what I like and dislike about it:

  • Titles are clear, bar chart isn’t too busy (like)
  • Not too many grid lines (like)
  • It’s easy to see the shape of the data and seasonality (like)
  • The scales are different between International & Domestic (dislike)
  • 3 years for easy comparison (like)
  • Eva chose this to promote her home country (like)

I think this was a good data set for week 4.  No data story to rewrite, special attention was made by Eva to mitigate data misinterpretation, and she added on a bonus of geospatial data for New Zealand.

My process really began with the geospatial part.  I haven’t yet had a chance to work with geospatial particulars developed and appended to data sets.  My experience in this has been limited to using Tableau’s functionality to manually add in latitude and longitude for unclear/missing/invalid data points.

So as I got started, I had no idea how to use the data.  There were a few fields that certainly pointed me in the right direction.  The first was “Point Order.”  Immediately I figured that needed to be used on “path” to determine where each data point fell.  That got me to this really cute outlined version of NZ (which looks like an upside down boot):

So I knew something additional needed to be done to get to a filled map.  That’s when I discovered the “PolygonNumber” field.  Throwing that onto detail, changing my marks to polygon and voila – New Zealand.  Here’s a Google image result for a comparison:

Eva did a great job trying to explain how NZ is broken up in terms of regions/territories/areas, but I have to admit I got a little lost.  I think what’s clear from the two pictures is I took the most granular approach to dissecting the country.

I’m super thrilled that I got this hands on opportunity to implement.  Geospatial is one of those areas of analytics that everyone wants to go and by including this – I feel much more equipped for challenges in the future.

Next up was the top viz: I’ve been wanting to try out a barbell/DNA chart for a long time.  I’ve made them in the past, but nothing that’s landed in a final viz.  I felt like there was an opportunity to try this out with the data set based on the original charts.  I quickly threw that together (using Andy Kriebel’s video tutorial) and really enjoyed the pattern that emerged.

The shape of the data really is what kicked off the path that the final viz ended up taking on.  I liked the stratification of domestic vs. international and wanted to carry that throughout.  This is also where I chose a colors.

The bottom left chart started out it’s life as a slope chart.  I originally did the first data point vs. the last data point (January 2008 vs. April 2016) for both of the types of tourism.  It came out to be VERY misleading – international had plummeted.  When I switched over to an annual aggregation, the story was much different.

International NZ tourism is failing!
Things look less scary and International is improving!

Good lesson in making sure to holistically look at the data.  Not to go super macro and get it wrong.  Find the right level of aggregation that keeps the message intact.

The last viz was really taking the geospatial component and adding in the tourism part.  I am on a small multiples kick and loved the novelty of having NZ on there more than once.  Knowing that I could repeat the colors again by doing a dual axis map got me sold.

All that was left was to add in interactivity.  Interactivity that originally was based on the barbell and line chart for the maps, but wasn’t quite clear.  I HATE filter drop downs for something that is going to be a static presentation (Twitter picture), so I wanted to come up with a way to give the user a filter option for the maps (because the shading does change over time), but have it be less tied to the static companion vizzes.  This is where I decided to make a nice filter sheet of the years and drop a nice diverging color gradient to add a little more beauty.  I’m really pleased with how that turned out.

My last little cute moment is the data sourcing.  The URLs are gigantic and cluttered the viz.  So instead I made a basic sheet with URL actions to quickly get to both data sets.

A fun week and one that I topped off by spelling Tourism wrong in the initial Tweet (haha).  Have to keep things fun and not super serious.

Full dashboard here.

Blog post ideas


  • How Apple Watch has changed my life
  • How tracking calories has changed my life
  • Why is my life always changing (har har)
  • New books
  • Walk through improvements on micro viz
  • Revamp D+W posts
  • Tableau – continuous fields from discrete values for heat maps


  • Starting a home automation system
  • Hobby photography
  • Stretch project  – IFTTT our data
  • FLIR