I am looking for a function to create a so called Beeswarm boxplot. This is very popular plots used in medicine and biology and I was surprised not to find it for MATLAB.
Basically the numerical data for each group are splitted to bins and jitter of points depends on number of points in a particular bin.
Here is an example done with R using BEESWARM function:
![](https://www.eimg.top/images/2020/03/15/b76c3592af41d198fa1b5030fb562032.png)
Different colors for additional group is very nice feature but it not needed for me now.
There is a function on the file exchange called plotSpread that can do these plots:
plotSpread({rand(100,1),randn(100,1)})
![](https://www.eimg.top/images/2020/03/15/b323917b22903a4bb64a6b848f94fb47.png)
data = [randn(50,1);randn(50,1)+3.5]*[1 1];
catIdx = [ones(50,1);zeros(50,1);randi([0,1],[100,1])];
plotSpread(data,'categoryIdx',catIdx,...
'categoryMarkers',{'o','+'},'categoryColors',{'r','b'})
![](https://www.eimg.top/images/2020/03/15/0f3eae8a6bc6dc974113fe9da4f70e29.png)
来源:https://stackoverflow.com/questions/9777592/beeswarm-boxplot-scatterplot-for-categorical-data-in-matlab