Creating Circular Dot Plot Timelines in Tableau

Apr 30, 2018

Klaus Schulte

For the first #IronViz feeder contest I created a context machine for German literature (click the viz for an interactive version on Tableau Public):

Dashboard 19

The visualization provides context to the different epoques of German literature by showing the epoques as a circular gantt chart next to historical events, technical inventions and famous composers of the respective years.

Why did I choose this design?

I had the idea of a ‘timeline context machine’ right the moment when the topic of the first feeder was announced. When I started looking for some infos about the epoques of German literature I soon realized that they are very unbalanced. Old German High Literature (750-1170) for example covers a range of 420 years, while the epoque of Post war literature (1945-1952) only covers seven years. Consequently all the timelines I found weren’t scaled properly.


I knew what I wanted to do when I saw a post by Benjamin Bach on Twitter where an article about timelines was linked showing examples of circular timelines.

With a circular timeline it would be possible to plot all the data points in a lucid viz at the right scale and it would still be possible to explore all the data points by hovering. My only problem was: I had no idea how to do this in Tableau.


When I started researching I read a lot about radial bar charts and sunburst charts but non of the solutions I found was able to help me executing my idea of a dot plot timeline. Eventually I remembered this fantastic Viz by Michael Mixon.

I was lucky that Michael also wrote a blogpost where he described the how to. When I read the blog I realized that I could adopt the techniques Michael used to let my design idea come to life.


I initially set up my viz with dummy data. I first created a datasource including years from 750 to 1995, a column for the type of content the ring would represent (e. g. ‘historical events’) and a variable to set the position of the ring and the distances between the rings (or the radius of the ring).

dummy data

Then I used Michael’s formular for angle and adopted his formulars for X and Y:


After bringing in Y on columns, X on rows, Year on Detail and Type of Content on path I had this nice first result:

first circle

Then I added a column ‘Wikipedia’ with exemplary events in my data source and calculated a second X for the dual axis.

2. X

Bringing in the second X, creating and synchronising the dual axis led me to this result. I  finally was where I wanted to be.

circle with events

The rest was ‘just’ bringing in more circles and all the data I wanted to show and formatting the viz.

Et voilà:

Dashboard 19

I hope you enjoyed this post!