standard deviation on power vs. frequency graph

1 view (last 30 days)
Hello all!
I am trying to put a shaded standard deviation on a power vs. frequency graph.
I've tried:
%errorbar
plot(f, mean(allspectrums_cortex_young)); hold on;
errorbar(f, std(allspectrums_cortex_young)/sqrt(13)); hold on;
fill(f, std(allspectrums_cortex_young)/sqrt(13),[1 0 0],'LineStyle','none');
title('Young Power - Cortex')
ylim([0 2000])
xlim([0 .15])
xlabel('Frequency (in hertz)');
ylabel('Power (n=13)'
%fill
plot(f, mean(allspectrums_cortex_young)); hold on;
fill(f, std(allspectrums_cortex_young)/sqrt(13),[1 0 0],'LineStyle','none');
title('Young Power - Cortex')
ylim([0 2000])
xlim([0 .15])
xlabel('Frequency (in hertz)');
ylabel('Power (n=13)'
and I get this:
Screen Shot 2020-01-18 at 11.11.36 AM.png
when I am looking for something more like:
Screen Shot 2020-01-18 at 11.13.30 AM.png
does anyone have any ideas? thanks so so much!

Accepted Answer

Star Strider
Star Strider on 18 Jan 2020
It would help to have your data, however I created some to illustrate the approach:
f = linspace(0, 0.5, 25); % Frequency Vector
allspectrums_cortex_young = 1E+3*rand(5, 25) + 1600*exp(-10*f); % Synthetic Spectrum
mn_allspectrums_cortex_young = mean(allspectrums_cortex_young);
sd_allspectrums_cortex_young = std(allspectrums_cortex_young);
figure
plot(f, mn_allspectrums_cortex_young)
hold on
patch([f fliplr(f)], [(mn_allspectrums_cortex_young+sd_allspectrums_cortex_young) fliplr(mn_allspectrums_cortex_young-sd_allspectrums_cortex_young)], 'r', 'FaceAlpha',0.5, 'EdgeColor','none')
hold off
The approach (using the patch function) is to create a closed curve that patch then fills. That is done here by adding and then subtracting the std from the mean, after plotting the mean.
Example —
1standard deviation on power vs. frequency graph - 2020 01 18.png

More Answers (0)

Categories

Find more on Behavior and Psychophysics 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!