Toan Hoang

Arrow Doughnut Chart

I saw the following data visualisation and thought that I had to create it, but once I created this I had no idea what I would call it. Baseball Stitches, Chevron Circle, Arrow Pie Chart, Arrow Doughnut and a host of others suggested by the community. As such, I settled on the Arrow Doughnut Chart, this I am sure will change of course.

Note: This is an alternative type of data visualisation, and sometimes pushed for by clients. Please always look at best practices for data visualisations before deploying this into production.

Data

Load the following data into Tableau Desktop / Public.

Country,Value,Link
United States,0.55,1
United Kingdom,0.8,1
France,0.25,1

Once your data is copied into Tableau, right-click on the data source and click on Edit Data Source… with the Data Source Editor open, paste the following, scaffold.

Link,Path,Position
1,1,1
1,360,1
1,1,1.2
1,360,1.2
1,1,1.4
1,360,1.4

Note: If you are using Tableau 2020.2 or great i.e. have access to new Relationship Model, you will need to double-click on the originally pasted data source to open up before pasting in the Path Data.

Make sure that you are using an inner join and the Link column is used to link the two data sources.

Note: we need two records for each Metric as we are going to be drawing lines and using densification to get more points on our canvas. For more information, check out our article on Data Densification.

Calculated Fields

With our data set loaded into Tableau, we are going to create the following Calculated Fields and Bins:

Create Path (bin)

Index

INDEX()-1

TC_Values

WINDOW_MAX(MAX([Value]))

TC_Position

WINDOW_MAX(MAX([Position]))

Zero

0

X

SIN(RADIANS(([Index]+IIF([TC_Position]=1.2,1,0))/WINDOW_MAX([Index])*360))*[TC_Position]

Y

COS(RADIANS(([Index]+IIF([TC_Position]=1.2,1,0))/WINDOW_MAX([Index])*360))*[TC_Position]

Color

IF [Index]/WINDOW_MAX([Index]) < [TC_Values] THEN
    WINDOW_MAX(MAX([Country]))
ELSE
    "Grey"
END

Size

IF [Index]/WINDOW_MAX([Index]) < [TC_Values] THEN
    1
ELSE
    0
END

So now that we have created a lot of Calculated fields, we will now put this together into a Worksheet.

Worksheet

We will now build our first worksheet:

You should now see something like the following:

Now we will adjust the data visualisation:

Now you will have the following:

Now we will adjust the cosmetics:

and here we go…

and boom we are done, this was a fun blog and you can see my version of this visualisation on Tableau Public at https://public.tableau.com/profile/toan.hoang#!/vizhome/ArrowDoughnutChart/ArrowDoughnutChart

Summary

I hope you all enjoyed this article as much as I enjoyed writing it and as always do share the love. Do let me know if you experienced any issues recreating this Visualisation, and as always, please leave a comment below or reach out to me on Twitter @Tableau_Magic.

If you like our work, do consider supporting us on Patreon, and for supporting us, we will give you early access to tutorials, exclusive videos, as well as access to current and future courses on Udemy:

Also, do be sure to check out our various courses:

Exit mobile version