Another bar chart catalogue… There’s so many out there whether it be on Tableau Public, or other resources. So, what separates this post from an ever-growing list of ideas? I’ve yet to see one really tackle how to compare period-on-period results across a list of dimension values. This all came about because of a task at work where I needed to create a chart visualising the latest period result and absolute difference to prior period, with labelling to communicate the percentage difference and latest period result. Below you will find my Tableau Public dashboard which presents seven different ideas. The workbook is downloadable, so if you need, go ahead and reverse-engineer my work!
Before that though, I will share some details about how I have created each.
Candlestick with Reference Lines

Measure Values on Columns
To create the bar chart portion of this chart, I first created a copy of my prior period calculated field so that I could give it a transparent colouring via measure names, knowing that for another one of these chart examples, I would want prior period to be an actual colour. If you create a custom colour palette with the colour being #FFFFFF00, it will be transparent when used within Tableau. For more on this trick, check out this blog post from Kevin Flerlage.
From there, it’s fairly straight-forward to add the two measures and define colours by dropping measure names onto colour in the Marks card.
Gantt Bars to Highlight Absolute Difference
I’ve placed the same copy of my prior period calculated field onto columns as a dual axis which allows me to add labelling to that particular row at the end of my latest or prior period bar, depending on which is the higher value. This means that my latest period value label won’t ever be covered by the reference line. Apart from that, I’ve placed my absolute difference measure onto size in the marks card to draw the line and then reduced the size considerably so that it gives us that candlestick shape. I also colour depending on whether the difference is a positive or negative value.
Reference Lines
I liked the addition of these as when the difference is very small, it was hard to tell if it was a rendering issue with the candlestick. You can get away without adding these though.
On the Measure Values axis, I have a reference line for the maximum value out of the latest or prior measures. This draws a line from top to bottom across both rows in the chart. I then also have a reference band on my dedicated prior period secondary axis to draw two lines, one for the latest period and one for the prior period. I chose to add this second reference band because I didn’t want the line to cover the latest period bar at all.
Following that, I’ve also added row banding at the second level, so that each category in my chart is clearly separated because my design doesn’t have large gaps between categories.
Bar in Bar

This one is much simpler to create, with a dual axis created for the latest and prior period. The latest period is overlayed at the front, with the size reduced so that you can see the prior period result behind it. The prior period bar has also had its size increased to make it easier to see behind. Labels are added to the latest period bar, which does mean that they will sit on-top of the prior period bar if your prior period is less than latest, as seen in the example screenshot for “Supplies”.
Highlighted Absolute Change

This chart is created similar to the Bar in Bar above, however this time we’ve selected Gantt as the mark type for prior period, and sized it based on the absolute difference between years. I’ve also coloured the prior period value based on whether the growth is positive or negative, and reduced the opacity of the colours so that they fade into the background, ensuring text labels are still readable when overlapping.
Side by Side

This one is initially set-up the same as the Candlestick with Reference Lines chart, however this time I’ve put latest period onto the secondary dual axis. This trick means I am able to only label the latest period row. I’ve used the actual original prior period calculated field within measure values so that I can colour it so that it’s actually visible this time. I’ve added row dividers to ensure dimension values are clearly separated from each other.
Bullet

This chart is the simplest to create and probably the easiest to interpret out of the bunch, but it has one flaw which I don’t like due to my requirement to display labels – the Gantt bars may cover those labels! There’s not much we can do about that either, as the bars need to be quite dark in colour. Nothing special to call out here – add prior period as a Gantt bar, and latest period as a standard bar. Labelling only added to latest period.
Waterfall

Set this one up just like the Candlestick with Reference Lines but we’re using three measures – add the original prior period measure into measure values, along with your copy of prior period (for transparency), and latest period.
Add the copy of prior period as a secondary dual axis, adding absolute difference to size to generate the candlestick.
Labelling has been added to the second axis only, which does mean the latest period value isn’t actually shown next to its bar. Perhaps a flaw with this design, that could probably be resolved with some extra trickery but wasn’t something I wanted to dive into for this project.
Direction

I first saw this one via Steve Wexler – there’s a few intricacies here, mostly just to get the text labelling to show on the left when the difference is a decrease, and the right when the difference is an increase.
Measure Values on Columns
Here we’ve added latest and prior period into measure values, but rather than the Gantt mark type, we’ve actually selected Line. After that, add measure names to “Path” on the marks card, which will result in a line being drawn between the two measure values for each row in the chart. When adding labels, choose “Line Ends” and “Label start of line” (as long as you’ve added latest period as your first measure value! Otherwise, you might have to pick “Label end of line”).
Arrows
To draw arrows, I’m using the standard “filled” shapes within Tableau, assigning the left and right arrow depending on whether the difference is a decrease or increase when compared to the prior period.
The final piece for this was to size the x-axis so that labels appear nicely next to the arrows. Doing this means you should most likely also draw a zero line on the chart, so that you’re not creating a misleading view due to the now abnormal axis range.
The Tableau Public Dashboard
Here is the Tableau Public dashboard embedded, or you can view it directly on Tableau Public here. Add it to your favourites on Tableau Public so you can easily refer to it in future!
Love this dad!