notBoxPlot is a MATLAB data visualisation function.
Whilst box plots have their place, it's sometimes nicer to see all the data, rather than hiding them with summary statistics such as the inter-quartile range. This function (with a tongue in cheek name) addresses this problem. The use of the mean instead of the median and the SEM and SD instead of quartiles and whiskers are deliberate. Jittered raw data are plotted for each group. Also shown are the mean, and 95% confidence intervals for the mean. This plotting style is designed to be used alongside parametric tests such as ANOVA and the t-test. Comparing the jittered data to the error bars provides a visual indication of whether the normality assumptions of the statistical tests are being violated. Furthermore, it allows one to eyeball the data to look for significant differences between means (non-overlapping confidence intervals indicate a significant difference at the chosen p-value, which here is 5%). Also see: http://jcb.rupress.org/cgi/content/abstract/177/1/7 Finally, 1 SD is also shown. Note that if data are not normally distributed then these statistics will be less meaningful.
The function has several examples and there are various visualization possibilities in addition to those shown in the above screenshot. For instance, the coloured areas can be replaced by lines.
Although it's worked well for situations I've needed it, I will be happy to modify the function if users come up against problems.
fitlm
[NEW]Q: "How can I modify the plot to look like..."
A: Most modifications can be done using the function handles. See the function help and the example function, NBP_example
Add the code
directory to your MATLAB path. Some operations (such as t-interval calculation) depend on the Stats Toolbox.
v1.31 (28-11-17)
v1.3 (11-03-17)
notBoxPlot(y,'jitter',0.5)
instead of notBoxPlot(y,[],'jitter',0.5)
v1.2 (28-08-16)