What is a beeswarm plot? A guide to showing distributions
Beeswarm plots make it possible to see the shape of a distribution and every individual data point at the same time
A beeswarm plot shows individual data points along a single numeric axis, spreading them out where necessary so they don’t overlap. This gives you a clear view of the overall distribution while keeping every dot (and the detail behind it) visible.
Values are positioned along an axis, then dots that would overlap are nudged to either side. As more values gather in the same area, the familiar “swarm” shape starts to appear.
This can be more revealing than, say, a histogram – another common way of showing distribution. Histograms group values into ranges, or “bins,” which makes the overall shape of a dataset easy to see. Beeswarms show that same spread differently: every individual value stays visible.
That means you can spot outliers, explore exact values, and add other information through color, labels, or popups.
Beeswarm vs scatter plot: what’s the difference?
Beeswarms and scatter plots both use dots, and you can create both in Flourish’s Scatter plot template. But they’re useful for different kinds of questions.
Scatter plots are excellent for showing the relationship between two numeric variables. For example, you could plot a company’s size against its change in share price to explore whether the two are related. Both positions matter: one variable determines where the dot sits on the X axis, and another determines its position on the Y axis.
But what if your main story is simply which companies changed in price the most?
That’s the question behind the example above. We’re interested in whether the companies with the biggest changes are technology companies, and the market cap provides some useful extra context. But neither is the main story.
In the scatter plot, many of the companies end up bunched together and overlapping. It becomes difficult to see which company is which.
Now let’s convert it into a beeswarm:
Suddenly, every dot becomes visible. The position along the only numeric axis shows the change in price, while the distributions for both technology and non-technology companies become much easier to read – with some of the larger dots even big enough to label directly.
When should you use a beeswarm plot?
Beeswarms work well when the individual data points matter as much as the overall pattern – for example, salaries across departments, exam results across schools, performance across teams, prices across product categories, and so on.
What datasets work best for beeswarms?
Continuous data tends to create a smoother swarm. For example, if you plot salaries rounded to the nearest $10,000, many dots may share exactly the same value and stack into noticeable lines. Using more precise salary figures creates a more natural spread.
It’s also worth checking how concentrated your data is. If most values fall within a very narrow range, you can end up with one large cluster of overlapping dots. The dots then need to become smaller to fit, making the chart harder to read.
As a general guide, Flourish beeswarms work best with up to 1000 data points.
Get creative with beeswarm plots
Beeswarms are inherently quite beautiful charts, and there’s plenty of room to get creative with them. You can make vertical beeswarms, experiment with color and size, or use the same variable in more than one way when it helps reinforce the story.
Take the lakes example above. Here, depth controls both the position and color of each lake. Normally, using one variable for two visual properties can be unnecessary, but in this case the sequential color scale adds to the feeling of moving deeper underwater.
Compare distributions across categories
You can also use a beeswarm to compare the same distribution across multiple groups. Simply use a categorical variable on one axis and a numeric variable on the other to give each group its own swarm.