A donut chart visualizes a part-to-whole relationship. It shows how the data is divided into categories with a certain value (the slices), but it always keeps the link between the value of one category and the total sum of those categories (the donut).
This means that the slices should add up to a logical sum. If the data is in percentages, the total should round up to a hundred. If the data is in absolute values, for example in euros, the categories should form a meaningful total.
This relative approach of comparing a part to a whole is key to understanding how to use a donut chart. If the focus of the visualization is on comparing values accurately between categories, it’s better to use another chart type.
A donut chart works best with only a few categories, otherwise, the chart becomes an unreadable clutter. It is also very suitable when one category is very big or very small compared to the other categories. But if the differences between the categories and thus between the slices are small and not easily recognizable, another chart - for example a bar chart - is much better suited.
The data-ink ratio of a donut chart is better than that of a pie chart and the data is depicted by the length of the sectors, rather than the surface, which is easier to interpret. Another advantage of a donut chart is that the space in the center can be used to add a title or a significant value derived from the data. This can be done by using a Datylon text object.
This chart works the same as a normal pie or donut chart, only the sum of all categories results in half a circle instead of a full circle. It can serve as a basis for a gauge chart, by using the slices to show progress or by adding a pointer.
This chart is visually similar to a pie chart, but a Nightingale chart does not communicate a part-to-whole relationship. It compares values between categories like a bar chart does, only this one is radial.
Instead of using slices, the 100% stacked bar chart (1 series) uses rectangles to draw the categories. This way, it’s easier to compare the size of the categories with each other.
A tree map consists of a square or a rectangle that is proportionally divided into other rectangles, representing the categories. The size of the shapes represents the values.
You can use icon arrays to communicate a part-to-whole relation by dividing a fixed amount of icons into groups and giving color and/or shape to each category.
There are different ways to color a donut chart. When using a legend, you can color categorically: every slice gets a distinct color and equals one category, but the hue of the colors needs to be different enough to easily switch your view from legend to donut chart. You can also give all slices the same color. That way only the size of the slice communicates the data. This results in a calmer and balanced look. Or you can double encode the values by coloring the donut numerically: the value of the slice drives the saturation of the color.
You can apply a categorical label directly or via a legend. In general, direct labeling is preferred. That way your eyes don’t have to go back and forth between slice and legend. (Our tool offers a lot of direct label options to optimize the placement of the labels.) However, if your donut chart is colored categorically and the space around the donut is too small, using a legend is a perfect way to make the donut chart design calmer. Value labels are usually applied directly to the slices.
You can emphasize a viewpoint or an analysis angle by applying data point styling to a certain slice. Differentiating the color, the label styling, and the size of a slice attracts the attention of the viewer to the point you want to highlight. Attention: be aware that some data point styling options, like increasing the radius of a slice or pulling the slice out of the donut can distort the translation of the data.
If your data contains a ton of categories, there is still a way you can use a donut chart. If the data allows it, and if it suits the message you are trying to convey, you can combine all small categories into one ‘other’ category and label it as such. This does not work for all datasets. Ideally, the ‘rest’ category is not bigger than the next to last category and the total number of categories is not much bigger than 5.