Latest

Week 38: Discovery Dashboard

One of my absolute favorite things about Tableau is that not only is it a fantastic data display tool, but it is amazing at data exploration and discovery.  While you’re in the flow of analysis there are tons of built in features that provide you feedback, awareness, and insight into your data.  Everything from displaying the number of marks on a sheet in the lower left corner (along with the sum of a measure) to exposing the worksheet summary card.  You can customize it to show you so many options and it’s one of the first tools I use when getting hands on with new data.

But what if you want to enhance your end-users’ capabilities and provide them with the same interaction you’re afforded in desktop?  Enter this week’s challenge: the Discovery Dashboard.  Designed off of a scatterplot, it’s goal is to give interactors the same features, insights, and tools that you passively have access to – all from Server and without the necessity of desktop or knowledge of how to develop.

This week your challenge is to recreate this guy (this is animated, so give it a moment!):

click to view on Tableau Public

Requirements

  • Dashboard size: 1100 x 900; 4 sheets tiled
  • Create a scatterplot of Sales vs. Profit with Segment on color
  • Create BAN of total marks, total sales, total profit
    • Include supporting information (min, max, slicing information)
  • Create controls that allow the user to
    • Change how the data is sliced (scattered)
    • Separate out segments to different rows
    • Separate out years to different columns
    • Add or remove reference lines
  • Match titles of each axis
  • Match tooltips
  • BANs should respond to selection inside of the scatterplot
  • Don’t forget the color legend & line formatting!

Data from this week comes from the Saved Data Source in Tableau 2018 (Sample – Superstore), download here if needed.

After you finish your workout, share on Twitter using the hashtag #WorkoutWednesday and tag @AnnUJackson, @LukeStanke, and @RodyZakovich.  (Tag @VizWizBI if you have space, he would love to see your work too!)

Also, don’t forget to track your progress using this Workout Wednesday form.

Solution: Paying The President

We’re working on providing different solutions for the rest of the year. While it’s not a guarantee that we’ll have one every week, we want to dispel any myths around the difficulty of the problems.

Last week Curtis made a video on how he created the solution. He’s going to do this every week. Curtis didn’t get it perfect but that’s okay it’s really close!

I’m not going to show you how to do every part, but I will show you a few tips that will get you going!

First let’s review the modified brief that I’ll use for this demo:

  • Dashboard size: 900px x 620px.
  • Background color: #F9F8F7
  • The data has unknown dates. Make all unknown values show up 3 months past the maximum date. If you need help see SPOILERS #1 below for the formula.
  • Create the stacked rectangle plot at the Source level. Use Size to size the boxes. Place a space of 0.01 between each of the squares. Make sure the order of the boxes matches, too. *This is the key challenge this week*
  • Create an “axis” that labels the start of each year as black and abbreviated month labels of April, July, and September, respectively. Also label the unknown values with “Unknown”. See SPOILERS #2: for help with the “axis”. And see SPOILERS #3 for the month label.
  • Color by source_group: Donald J Trump For President: #F7C480, Other: #76B7B2, Taxpayers: #555555
  • Add annotations for when Trump announced candidacy, gets nomination, the election, and inauguration. You’ll want this: ▼
  • Add the annotation around incomplete/missing data.
  • Add the divider and bracket on the dashboard.
  • Match tooltips.
  • Credit the original authors/designers and link to the original:
    Originally by Derek Kravitz and Derek Willis, ProPublica, and Paul Cronan, Mark Schifferli and Charlie Smart, Fathom Information Designhttps://projects.propublica.org/paying-the-president/.

So were talking about just 3 points. And I give you help with two of them!

Step 1: Unknown Dates

First you need to figure out the unknown dates.

IFNULL([Date], DATEADD("month", 3, {MAX([Date])}))

Put this on Columns and make it date value at the month level.

You’ll end up with this:

Step 2: Create mark logic + add level of detail.

Next were going to figure out the spacing for the marks. The formula utilizes the height of each square and then adds .01. After that we subtract half the hight of the square to center the mark where it should be. The final formula looks like this.

RUNNING_SUM(SQRT([Size]) + .01) - SQRT([Size])

Set your mark type to square and it produces this visual:

The sizing calculation before the appropriate marks are ordered on the marks card.

Next up: Let’s add the correct level of detail to the marks card. Add exact date, source to detail. Source (group) to color, and Size to size. That will give you an imperfect visual where you need to edit the table calculation (be sure to re-order the values).



Once you have edited this you end up with this visual:

It’s almost there!

It’s so close!

Step 3: Dual Axis of MIN(-3) and format.

So were basically there already. Now come’s the trick with the axis. I created a dual axis chart with the second value just an in-line calculation of MIN(-3). Synchronize this and remove all the values from this marks card.

After that you just need to create two calculations. One for the bold font and one for the gray font. Then place these on text on the marks card and format.

Years calculation (also in spoilers):

IF MONTH([Date]) = 1
OR DATETRUNC("month", [Date]) = {MIN(DATETRUNC("month", [Date]))}
THEN STR(YEAR([Date]))
ELSEIF DATETRUNC("month", [Date]) = {MIN(DATETRUNC("month", [Date]))}
THEN "Unknown"
ELSE "" END

Month Calculation: 

IF DATETRUNC("month", [Date]) != {MIN(DATETRUNC("month", [Date]))}
THEN IF MONTH([Date]) = 4
    THEN "APR"
    ELSEIF MONTH([Date]) = 7
    THEN "JUL"
    ELSEIF MONTH([Date]) = 10
    THEN "OCT"
    ELSE ""
    END
ELSE ""
END

Now we just add these to text on marks and format like this:

Year and Month labels.

Then we have this:

Note the faux axis labels.

Step 4: Format

Finally we need to revers our axis, hide our axes, and format. Then we end up with the final product looking like this:

Not bad.

Not bad for 4 steps!

Week 37: Recreating Paying the President

Challenge

This week we’ve partnered with Makeover Monday to examine potential conflict of interest between President Trump’s personal holdings and his campaign staff and government officials using data from Propublica. We’ll also be giving you a few formulas so you can focus on the important parts of the challenge: “stacking” the squares and placing the labels of year, month, and unknown on the “axis”.

click to view on Tableau Public

Setup

1. Create a calculated field called Size. Size will be used to size the squares. The size of the squares represents the overall area of the symbol. There are five different values each representing a different threshold of amount spent at a property.

IF SUM([Amount]) < 1000
THEN 1
ELSEIF SUM([Amount]) <10000
THEN 4
ELSEIF SUM([Amount]) < 100000
THEN 9
ELSEIF SUM([Amount]) < 1000000
THEN 16
ELSE 25
END

Requirements

  • Dashboard size: 900px x 620px.
  • Background color: #F9F8F7
  • The data has unknown dates. Make all unknown values show up 3 months past the maximum date. If you need help see SPOILERS #1 below for the formula.
  • Create the stacked rectangle plot at the Source level. Use Size to size the boxes. Place a space of 0.01 between each of the squares. Make sure the order of the boxes matches, too. *This is the key challenge this week*
  • Create an “axis” that labels the start of each year as black and abbreviated month labels of April, July, and September, respectively. Also label the unknown values with “Unknown”. See SPOILERS #2: for help with the “axis”. And see SPOILERS #3 for the month label.
  • Color by source_group: Donald J Trump For President: #F7C480, Other: #76B7B2, Taxpayers: #555555
  • Add annotations for when Trump announced candidacy, gets nomination, the election, and inauguration. You’ll want this: ▼
  • Add the annotation around incomplete/missing data.
  • Add the divider and bracket on the dashboard.
  • Match tooltips.
  • Credit the original authors/designers and link to the original:
    Originally by Derek Kravitz and Derek Willis, ProPublica, and Paul Cronan, Mark Schifferli and Charlie Smart, Fathom Information Design

    https://projects.propublica.org/paying-the-president/.

 

Dataset

This week uses a modified version of Spending at Trump Properties from Propublica (original data here – don’t use this one). You can get it here at data.world.

 

Share

After you finish your workout, share on Twitter using the hashtag #WorkoutWednesday and tag @AnnUJackson, @LukeStanke, and @RodyZakovich.  (Tag @VizWizBI too – he would REALLY love to see your work!)

 

Track your progress

Also, don’t forget to track your progress using this Workout Wednesday form.

 
 

 
 

#SPOILERS

1. For those still learning here is the formula for the spacing the unknown values three months out from the last known month:

IFNULL([Date], DATEADD("month", 3, {MAX([Date])}))

 
2. For those still learning here is the formula on how to create the faux axis:

IF INDEX() = 1
THEN -3
END

Using this INDEX() function allows to only show a single mark and not have a bunch of overlapping marks per month.

3. For those still learning here is the formula for creating the month label:

IF DATETRUNC("month", [Date]) != {MIN(DATETRUNC("month", [Date]))}
THEN IF MONTH([Date]) = 4
    THEN "APR"
    ELSEIF MONTH([Date]) = 7
    THEN "JUL"
    ELSEIF MONTH([Date]) = 10
    THEN "OCT"
    ELSE ""
    END
ELSE ""
END

Week 36: Scatter Plot Reference Bands

Hello again everyone! This week we are looking to add Reference Bands to our Scatter Plots in order to “group” together like items. Looking at NBA Players Total Games and Points spread.

Click to view interactive version

Requirements:

  • Dashboard size 920 x 825
  • Players are grouped into 5 bins by Avg Points per Game
    • 10-14, 15-19, 20-24, 25-29 and 30-34+
    • Must create an interactive legend on the top right that can be used in a Dashboard Highlight
  • The “Bands” are based on these bins from the Minimum number of points over X games to the Maximum number of points over X games.
  • The Y Axis (Total Points) is fixed at 17,980 to 39,900 | The X Axis (Games) is fixed at 715 to 1667
  • By default, the Top 10 Players (by points scored) will have Text Labels with their Rank, and name
  • When highlighting players using the Points Bin Legend, only show Text Labels for the players in that bin
  • Players that are marked as “active” should have a circle with an outer ring to separate them from inactive players.

Data from this week comes from Basketball-Reference via Jeff Planter. You can download the aggregated data here

After you finish your workout, share on Twitter using the hashtag #WorkoutWednesday and tag @AnnUJackson, @LukeStanke, and @RodyZakovich.  (Tag @VizWizBI too – he would REALLY love to see your work!)

Also, don’t forget to track your progress using this Workout Wednesday form.

Week 35: Superstore Small Multiples

We’re wrapping up our month of Community submissions with a workout submitted by Zen Master Neil Richards.  A great way to end an awesome month facilitated by so many members of the Workout Wednesday community.  We’ve definitely been inspired and challenged by your contributions and impressed with the support you’ve given to those completing your workout.

So without further ado – here’s this week’s brief and background from Neil:

This week’s workout is about recreating a small multiple version of a 2×2 quadrant chart. There may be limited uses for such a chart but I’m a great fan of small multiple charts for visual horizon scanning to compare and contrast patterns in data over dimensions. Since the superstore dataset has 49 states included (no Alaska or Hawaii, but District of Columbia is included), we have a perfect dataset for a 7×7 grid.

I recently created an example of such a chart in a submission for #VizForSocialGood which can be seen here. Your challenge this week is to recreate a similar chart using the (US) Superstore dataset which is supplied with every Tableau installation. We will look at profit ratio across 4 category types (splitting the Technology category into Phones and Other Tech) and display as four proportionally sized squares. We will then highlight the category with the highest profit ratio using the colour of the state’s region. You can see the finished viz below – further explanation is given in the top section.

 

click to view on Tableau Public

 

Requirements:

  • Dashboard size: 1000 x 1300 – 2 sheets
  • Create a view looking at profit across 4 categories
  • Split out phones vs. other tech
  • Ensure the category with the highest profit is highlighted with color
  • Color for the highlight should match the state’s region
  • Create a custom legend for the upper right with a larger version of the overall chart
  • Ensure negative profit ratio is expressed as zero

Data from this week comes from the Saved Data Source in Tableau 2018 (Sample – Superstore), download here if needed.

After you finish your workout, share on Twitter using the hashtag #WorkoutWednesday and tag @theneilrichards,  @AnnUJackson, @LukeStanke, and @RodyZakovich.  (Tag @VizWizBI if you have space, he would love to see your work too!)

Also, don’t forget to track your progress using this Workout Wednesday form.

Week 34: Building an Interactive Display to Visualize Violence in the DRC

This week we’re visualizing conflict data provided by ACLED.  ACLED, which stands for Armed Conflict Location & Event Data Project, is a “disaggregated conflict collection, analysis and crisis mapping project.”  You’ll notice throughout the Tableau Community this week that there are several partner projects going on – all designed to provide awareness on ACLED’s cause.  Zen Masters Anya A’Hearn and Allan Walker are responsible for orchestrating this massive collaboration campaign.

For Workout Wednesday’s part, we were passed this brief “Create a map for the Democratic Republic of the Congo in which we depict where specific actors have engaged in violence. This way we can begin to understand what locations have seen a multitude of actors engaging in violence.  With the recent Ebola outbreak in the DRC, humanitarian groups are interested in understanding what groups may be most active and in which locations they have engaged in violence.”  This included a specific data set focused on militant groups within the DRC and including a record for each actor engaged in a specific event (and as you can imagine, there’s usually multiple parties involved in a violent event).  It’s important to recognize and point out that this data set is different than ACLED’s traditional event-based set, which is not narrowly limited to the DRC or militant groups.

So the focus and challenge for this workout turned into creating an interactive display that would allow humanitarian groups to explore specific areas and quickly gain insight into recent violent acts.  Some things we kept in mind were ensuring the final work was approachable (and simple) for end users less familiar with Tableau.  I think you’ll find throughout the challenge there’s a pristine level of detail in the design and technical aspects that help promote simplicity.  It’s also intentionally been put into a format that may resemble a dashboard template found in a business/enterprise environment.

click to view interactive version on Tableau Public

 

Requirements

  • Dashboard size: 1200 x 800; 8 sheets (7 tiled, 1 float)
  • Create a map of each event with color & shape depicting year
  • Create BAN of total involved actors
  • Create bar chart of # events by year, including custom legend & highlight on map
  • Create treemap of most involved actors, # events involved in, date of last activity, and viz in tooltip verison of map
  • Create a section showing most recent event and militants involved
  • Mechanics of Interactivity
    • Users should be able to select marks on the map using either the rectangle, radial tool, or lasso; users shouldn’t be able to re-position map, or exclude points
    • Filtering on the map should affect the charts on right
    • The viz in tooltip displays each event for actor, and also reflects filtering of the larger map and includes labels of locations
    • When a recent even includes more than 200 characters in the description, it should have an ellipse (…) display in the sheet space, however the tooltip should include the full description
    • Date range at top should filter appropriately
  • Additional inclusions
    • Hover-over information button
    • Logo for ACLED sourced from here 
    • Icon for mouse selection – you can freely use this icon I own the rights to without attribution here
  • And don’t forget to match all other tooltip requirements
  • Pay attention to the titles, particularly the overall dashboard title section
  • White space matters on this one – for those who have wanted to flex their skills at padding and layout containers: now is your chance

Data from this week was provided by ACLED and can be downloaded at data.world

After you finish your workout, share on Twitter using the hashtag #WorkoutWednesday and tag @AnnUJackson, @LukeStanke, @RodyZakovich, and @ACLEDINFO.  Please be sure to include the additional hashtag #ACLEDconflictviz.

Also, don’t forget to track your progress using this Workout Wednesday form.

 

Week 33: What customers make up XX% of sales?

August Community Submission Month

Welcome to community submission month. For all 5 of those weeks we’ll have our favorite community submissions as challenges. FYI: You can still submit here.

 
 

Community Submission Challenge #3: Donna Coles

Donna is located in Didcot, Oxfordshire in the UK. She is a Business Analyst for RM Education and has been working with Tableau for around 5 years. She is Server Admin and oversees the internal Tableau community sharing best practice and providing consultation and training. She has been completing the weekly #WorkoutWednesday challenges since inception in Jan 2017 as they provide opportunities to learn new ways of presenting data that could be applied to a business scenario, as well as often introducing features she hadn’t been aware of. She is also a Tableau Community Forums Ambassador. Don’t forget to follow her on twitter. With that, here is Donna:

Challenge

This weeks challenge is to build a pareto chart to understand what proportion of customers make up sales, and is based on an actual visualisation Donna delivered for a business requirement. There haven’t been many pareto challenges, so hopefully this will give an opportunity for some of you to try a new chart type, but also provide a bit of extra thinking for those that are familiar with them.

click to view on Tableau Public

Requirements

  • Dashboard 800 x 800.
  • Selection of the Sales Percentage slider will adjust the highlighted point.
  • Sales Percentage slider should increment in 10s from 10%-90%.
  • % values displayed to 1 decimal point.
  • The Sales Percentage mark highlighted should be the value that is at least the value selected in the slider (eg when 60% is selected, the mark highlighted is 60.1% as the previous mark is 59.9% which is less than the slider value).
  • The tooltips on the curve differ from that on the highlighted mark.
  • The tooltip on the highlighted mark should also indicate the actual number of customers at that point, as well as the total number of customers.
  • Rebuild everything to be identical, matching titles, tooltips, chart formatting.

 

Dataset

This week uses the superstore dataset for Tableau 2018.1. You can get it here at data.world

 

Share

After you finish your workout, share on Twitter using the hashtag #WorkoutWednesday and tag @AnnUJackson, @LukeStanke, @RodyZakovich, and our community contributor @donnacoles30.  (Tag @VizWizBI too – he would REALLY love to see your work!)

 

Track your progress

Also, don’t forget to track your progress using this Workout Wednesday form.

 
 
 

 

Week 32: Coloring Between the Lines

August Community Submission Month

Welcome to community submission month. For all 5 of those weeks we’ll have our favorite community submissions as challenges. FYI: You can still submit here.

 
 

Community Submission Challenge #2: Rosario Irasema Gauna González

Our second community challenge comes from Rosario Irasema Gauna González. Rosario is located in Monterrey, Nuevo León in Mexico. She is the Director of Analysis at Information at the University of Tecnológico de Monterrey. She also a Tableau Public Ambassador and blogs at Rosarioviz. Don’t forget to follow her on twitter. With that, here is Rosario:

The goal of this week’s challenge is to better understand

click to view on Tableau Public

Requirements

  • Dashboard size: 800 x 700.
  • Use per capita calculations.
  • You must be able to select data from a specific country or the world itself.
  • You must be able to select between Ecological FootPrint Production and Ecological FootPrint Consumption.
  • The green line should be biological capacity per capita.
  • The red line should be ecological footprint per capita.
  • If the Biological Capacity is greater than the Ecological Footprint, it means that we have a positive reserve and the area between the two lines must be shaded in green.
  • In the opposite case, it means that there is a deficit and the area between the two lines must be shaded in red.
  • When you move the cursor over the graph subtitles should update to the selected year.
  • When you move the cursor over the graph the subtitle of the difference between Capacity and Ecological Footprint should be green if there is a reserve (+) or red if there is a deficit (-) in the year.
  • Rebuild everything to look identical. Make sure you match titles, tooltips, etc.

 

Dataset

This week uses the Biocapacity vs. Ecological Footprint dataset.  You can get it here at data.world

 

Share

After you finish your workout, share on Twitter using the hashtag #WorkoutWednesday and tag @AnnUJackson, @LukeStanke, @RodyZakovich, and our community contributor @rosariogaunag.  (Tag @VizWizBI too – he would REALLY love to see your work!)

 

Track your progress

Also, don’t forget to track your progress using this Workout Wednesday form.

 
 
 

Week 31: Dynamic Color Legend

August Community Submission Month

Welcome to community submission month. For all 5 of those weeks we’ll have our favorite community submissions as challenges. FYI: You can still submit here.

 
 

Community Submission Challenge #1: Sean Miller

Our first community challenge comes from Sean Miller. Sean is located in Kansas City, Missouri in the United States. He’s worked at Cerner – a large healthcare company – in data visualization for nearly the past five years. He’s also very involved in the Tableau Twitter community. Don’t forget to follow him on twitter. With that, here is Sean:

How to Show/Hide a dynamic color legend

This week we’re digging into Tableau’s color legend. In a recent project at work, I was presented with this same challenge. This was a small piece of a much larger dashboard.

 

The client had a requirement that they wanted to be able to flex between different dimensions and different measures depending on the analytic. Among others were simple bar chart and a chloropleth map (Original challenge was down to the zip code).

 

Additionally, the client only wanted color variation on the map. This presented a challenge because best practice tells us that when there is color variation we must have a legend but Tableau legends do not flex dynamically.

 

Your challenge this week is to replicate the standard color legend so that it flexes along with the selections made in the parameters.

click to view on Tableau Public

Requirements

  • Dashboard size: 800 x 800. Total sheets are part of the challenge.
  • Allow users to select between sales and profit as the measure.
  • The map should have the corresponding measure on color.
  • When the map is active, the color legend and min/max values should show. When subcategory is active the legend and values show be hidden.
  • The color legend should be a stacked bar.
  • The title should update appropriately.

 

Dataset

This week uses the superstore dataset for Tableau 2018.1.  You can get it here at data.world

 

Share

After you finish your workout, share on Twitter using the hashtag #WorkoutWednesday and tag @AnnUJackson, @LukeStanke, @RodyZakovich, and our community contributor @kcmillersean.  (Tag @VizWizBI too – he would REALLY love to see your work!)

 

Track your progress

Also, don’t forget to track your progress using this Workout Wednesday form.

 
 
 

#SPOILERS

  • Tableau sorts differently depending on chart type.

 

Week 30: Statistical Signals in Superstore Sales

This week’s workout is all about finding signals or patterns in data, specifically using run charts (aka line charts).  Variance over time is one of the most common ways to understand a process and often when we’re visualizing the data we use data summarization tools like the mean (average) or median to help aid in what we’re seeing.  Quite often there’s a story that unfolds during our visual analysis – these points are all low, look at this trending section, this single measurement is way different than the others.

These visual tests are good on their own, but they can lead to imprecise interpretation, focusing on detail that may not indicate a pattern, or the inability to communicate findings in a rational and logical way to others.  Fortunately for us there’s an easy way to combat that from happening – enter statistical tests and control charts!

Control charts using their most basic definition are a way to determine if a process is stable (aka “under control”) and typically uses different types of statistical tests to programmatically identify any signals or patterns based on rules placed on the data set.  I was introduced to them from a process engineering and industrial engineering perspective and I would say from my experience they work most effectively when a process isn’t constantly changing (the most popular example: a screw factory always makes 1 inch screws, anything outside of 1 inch would indicate a problem in the manufacturing process).

So your challenge this week is to recreate 3 different statistical tests using Superstore data.  (Play along with me a little bit and assume Superstore doesn’t invest anything in changing monthly sales).  And remember – these are just signals within your data – it’s always important to validate these signals to determine if there’s a legitimate reason behind them.

 

click to view on Tableau Public

Requirements

  • Dashboard size: 1100 x 800; 3 sheets, tiled
  • Create a run chart of monthly sales (without date drilling)
  • Create a middle line that is either the mean or median
  • Create +3 SD and -3 SD lines from the middle line
  • Build out the 3 statistical tests – match for test causes an orange dot to be plotted on run chart
    • more than 3 SD from the middle line
    • 3 consecutive points trending in the same direction positively or negatively (ex: point 1 > point 2 > point 3)
    • 3 consecutive points above or below the middle line
  • Create a corresponding chart below run chart with indicators of the test
    • Yellow dot if it’s part of the pattern that corresponds with the test
    • Orange dot if it’s a signal (aka meets the test criteria, should match the run chart)
  • Interactivity
    • In line chart, tooltip for orange dots should indicate ‘signal’
    • In symbol chart, tooltip should indicate
      • ‘part of test pattern’ = gold dot
      • ‘meets test criteria’ = orange dot
    • Match hovering on the run chart or the symbol chart
      • Specifically look at hovering over an orange dot, label appears in run chart
  • Test Description – match the text, this should change with the test selected
  • Match all other tooltips, descriptions, and filters

Data from this week comes from the Saved Data Source in Tableau 2018 (Sample – Superstore), download here if needed.

After you finish your workout, share on Twitter using the hashtag #WorkoutWednesday and tag @AnnUJackson, @LukeStanke, and @RodyZakovich.  (Tag @VizWizBI too – he would REALLY love to see your work!)

Also, don’t forget to track your progress using this Workout Wednesday form.