This blog outlines steps as to how I made a radial comet graph. The original data is attached.
Before diving into the build I want to say a thank you to Gary Collins. I spent some time bouncing ideas off of Gary to get the visualisation to a place I was happy with which included sending a workbook back and fourth. Gary was the inspiration behind building the visualisation, having read his blog on comet charts here.
As a side note, do check out Gary’s profile here. I am a huge fan of his work – especially the Tableau Darts dashboard and his Iron Quest submission on relaxation.
When is a Comet Chart useful?
Comet charts are a useful way traditionally to show change, as well as direction of movement. They can be also used to compare across categories when comparing the length of each comet. Typical similar graphs to a comet may include the barbell chart and dumbbell chart variations. Alternatively a bar graph with current year, with vertical marker overlays for previous year may be appropriate.
The comet therefore is composed of a line between a “Then” and “Now”, length based on the change. The direction of the movement will have the thicker end at the “Now”. We can then use further sizing and colour to bring in other attributes we’d like to show.
In Gary’s blog post dashboard, the use of the comet graph has some clear takeaways:
- The thicker sized end being 2017, the former being 2010.
- The X & Y axis showing Life satisfaction and GDP per capita, therefore we can see where a country has increased or decreased.
- The magnitude of change.
- The change of these countries relative to each other.
Gary’s blog covers these pointers off in greater detail.
So why ruin the Comet Chart by making it radial?
- Keep your best practice for the workplace.
- Circles are fun.
- We may lose some sense of the impact of X & Y axis, but bringing the comets close together in some ways makes them easier to compare.
Disclaimer: I’d highly recommend against using this if we are talking best practice, but for something purely experimenting with design, I really enjoyed it. Some possible user cases may include YoY change, progress in metrics, (such as the Human Development Index), and changes in table positioning.
The starting methodology is an adapted version of what can be found on Tableau Magic for the radial bar chart. I’d recommend starting with trying to recreate this using the superstore data beforehand just to understand some of the underlying logic. Therefore thanks goes to Toan Hoang for the technique around duplicating the data.
If you’d like to follow the build, you can download a copy of the excel template I made from the repo at the top of the page.
But if not, below is a screen shot of the original two data sheets:
Step 1. Connect to the data. We will want to create an inner join between our data sheet and the positions sheet using 1=1.
This duplicates our dataset for each “Position”. As you can see in the print screen each letter now has two associated rows with it, one with Position = 1, one with Position = 2.
Step 2. Open a new sheet and create the following calculations:
The first is to be able to create an equal distanced angle between each comet. If you use your own dataset, you will need to adjust this calculation with respect to the distinct ‘Letters’ field. As I have 26 Letters in my data template, I hardcoded the 26.
To find the position of each letter moving round radially we will need to create a radial angle calculation.
We then will want to create our X and Y co-ordinates radially using the cosine and sine functions.
As we want to create two separate marks, we split it out by position, marking position 1 as the previous year value, and position 2 as the current year’s value.
Drag X onto Columns.
Drag Y onto Rows.
Drag Letter onto detail, and make the marks a line.
Here we can now see the similarities to the ‘radial bar graph’ (as seen on Tableau Magic), however our start and end points are offset to be in alignment to the previous and current year positions of our dataset.
Drag Position onto Path and Size. The current year will have the thicker end due as the position is sized on being 2, whereas the sizing of the previous year was 1.
From here it is a matter of additional design elements.
I added a random colour calculation using the below. This would be a great opportunity to bring in another attribute / colour on category if using your own dataset.
I made the X and Y-axis between -10 and 10, as these are the values my numbers sit within and will keep the shape of the circle.
Because the values don’t all have the same start position I overlaid the graph on circles that had each ring moving outwards with an increasing value of 1. Do note this needs a separate dataset. I followed Ivett’s radial gradient tutorial that can be found on the “How to Make It” tab.
Finally I overlaid the comet chart over the background (faded out) to make the end result.
If you’d like a copy of the workbook, it is downloadable on my profile.
A fairly quick and simple visualisation! Let me know if you have any questions, and feel free to reach out to me on Linkedin or Twitter.