Data Vis: Bee Swarm Plot:

Hello there Forum.
I’m trying to generate a data visualisation tool called a ‘Bee Swarm Plot’ – which is a one-dimensional scatter plot similar to ‘strip-chart’, except that would-be overlapping points are separated such that each is visible.
The essential issue is that the circles should not overlap. If the circles are due to overlap, I want a space/separation created by ‘automatically’ moving one of the circles either up or down so there is a small ‘space’ between the circles (for my example I used 0.5 for the spacing).

Also, if there are 2 or 3 circles with the same date, then they would be on top of each other vertically (with a small space between).

If on very different days (ie 1st and 8th) they would be side-by-side horizontally along the axis.

Most importantly, if two circles are next to each other (re: overlapping) on the 4th and 5th day then the circles would be in a diagonal configuration.

If there are 50 points (for example) each circle would kinda influence each other – especially if the plot was pretty dense.

I’ve read up on Remapping number and Attractors, Closest point(s) but I’m struggling to see how to apply.

Bee_Swarm1.gh (10.4 KB)

Can you help or offer some suggestions to point me in the right direction?

Ultimately, I’d like to input data from Excel to produce these Bee Swarm plots…but hey small steps.

Note: the size of the circles relates to the separate value (which is not important for this enquiry).

Hi @jason_morenikeji,

You could look at both circle packing and diffusion limited aggregation to solve your problems. Of course you’d have to adapt the algorithms a little to your needs.

Here are two of Shiffmann’s videos with great explanations:


Hello there @ P1r4t3b0y.
An enjoyable watch. Thank you for the suggestion.
My coding is limited (non-existent)…and I may struggle as I’m relatively new to Grasshopper.
Tomorrow I’ll try to de-engineer something based on the principles outlined in the two videos.
Thanks again,
Jason