Let's say I have a df like this:
df = pd.DataFrame({'col1': list('aabbb'), 'col2': [1, 3, 1, 5, 3]})
col1 col2
0 a 1
1 a 3
2 b 1
3 b 5
4 b 3
I would like to see a plot, where on the x axis, I have the col1 names ONCE, and on the y axis, the col2 data, as individual dots, so above 'a' I would have two dots at the height of 1 and 3, and above b I would have three dots at the heights of 1, 5 and 3. My main problem is that anything I try results in several a and b on the x axis, not grouped.
Beeswarm, strip, and scatter plots are all options, depending on your data and preferred aesthetic.
plt.scatter
ordf.plot.scatter
(most basic)sns.swarmplot
(avoid collisions)sns.stripplot
(random jitter)