Draw an Univariate Scatter plot out of a nx2 table with a
categorical/string and a numerical variable, or out of a
numerical array, with groups/categories corresponding
to the columns of the numerical array.
This kind of graph is very popular in biochemistry/biology
Many custom options are available as Name,Value
pairs. For optimal visualization of your data I
recommend to play with 'RangeCut', and also with pbaspect of the plot, it
really changes the appearance.
You need the following functions for this function to work:
+CatTable2Array: included in the file
Also, a very simple function to assign colors is
provided, ColorCoder, you can see several examples in the
Please, all your feedback is welcome to improve this function
If you use this function in a public webpage or publication, I encourage you to share the reference with me so that I include it in the publications section.
version: <1.2> from 20/03/2020
% Manuel Lera Ramírez: email@example.com
% Developed during Master Thesis Internship in Marcos González-Gaitán's Lab
% Departments of Biochemistry and Molecular Biology, Sciences II,
% 30 Quai Ernest-Ansermet, CH-1211 Geneva 4, Switzerland
Looking at the posts I found a function that does something very similar to this, plotSpread http://www.mathworks.com/matlabcentral/fileexchange/37105-plot-spread-points--beeswarm-plot-
Look for the one that suits better your needs, the final appearance should be different for each case.
The idea of representing std and SEM as rectangles was inspired by the function notBoxPlot by Rob Campbell
Manuel Lera Ramírez (2024). UnivarScatter (https://github.com/manulera/UnivarScatter), GitHub. Retrieved .
MATLAB Release Compatibility
Platform CompatibilityWindows macOS Linux
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!Start Hunting!
Versions that use the GitHub default branch cannot be downloaded
Moved to github
As pointed out by Tommy Kaplan, the function was previously calculating the 90% CI of the mean (from 0.05 to 0.95), changed line 469 in UnivarScatter.m to (0.025 to 0.975) to really get the 95% CI. Many thanks to him and sorry for the inconvenience.
Added a reference to the function plotSpread, which does a very similar plot as this one http://www.mathworks.com/matlabcentral/fileexchange/37105-plot-spread-points--beeswarm-plot-
Added the main picture