How can we create poll-like plots with confidence intervals like the example attached?

2 views (last 30 days)
Hi all,
I have a quick question, does anyone know where we can start for this type of chart below?
It's technically a regression line, confidence interval and actual data based on time. But graphically it looks so appealing.
I appreciate any clue or advice you could provide.
  1 Comment
dpb on 6 Jun 2021
The CurveFitting and/or Statistics TB fit function includes LOESS/LOWESS models although I've not (yet) used the MATLAB implementation.
The Signal Processing TB includes an implementation of the underlying Savitsky-Golay filter.
Generating the plots would be adding features with patch() or the like to shade the intervals -- not terribly difficult but can be time-consuming to build.

Sign in to comment.

Accepted Answer

Star Strider
Star Strider on 6 Jun 2021
That would appear to be a scatter plot with mean or median values plotted on it as well (likely using movmean or movmedian), with patch objects providing the shading between the confidence intervals (or something similar).
Example —
t = linspace(1,1000,200);
y = sin(2*pi*t*0.003) + randn(size(t))*0.5;
solidline = movmean(y, 100);
stdev = movstd(y, 100);
scatter(t, y, 5, 'b', 'filled')
hold on
plot(t, solidline, '-r')
patch([t, fliplr(t)], [(solidline-stdev) fliplr(solidline+stdev)], [1 1 1]*0.6, 'FaceAlpha',0.25, 'EdgeColor','none')
hold off

More Answers (0)


Find more on Discrete Data Plots in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!