shading plots between one standard deviation

I am trying to shade the region between two standard deviation. So i write code like the below :
plot(datenum(monthly_mean.mytime),monthly_mean.PM_2_5+15.6538,datenum(monthly_mean.mytime),monthly_mean.PM_2_5-15.6538)
datetick('x', 'mmm','keeplimits')
xlim([737791 737943])
date_std = [datenum(monthly_mean.mytime),fliplr(datenum(monthly_mean.mytime))];
inbetween = [monthly_mean.PM_2_5-15.6538,fliplr(monthly_mean.PM_2_5+15.6538)];
fill(date_std,inbetween,'g')
hold on
plot(datenum(monthly_mean.mytime),monthly_mean.PM_2_5)
datetick('x', 'mmm','keeplimits')
xlim([737791 737943])
I have used also function 'patch' for doing that part. I have uploaded the figure, so i want to shade the region between the top and bottom curve, but somehow a straightline appears and fill those parts(in the figure). How to overcome this problem? I have taken those parts also from mathworks. Please guide me. Thank you

2 comentarios

VBBV
VBBV el 14 de Dic. de 2020
Can you attach the data or coorindates if plot shown in fig ?
SWARNENDU PAL
SWARNENDU PAL el 15 de Dic. de 2020
I have submitted data. please guide me. Thank you.

Iniciar sesión para comentar.

Respuestas (2)

KSSV
KSSV el 15 de Dic. de 2020
If (x1,y1) and (x1,y2) are tow data, with x1 increasing montonically. I assume they are column arrays. I assumed both of them are of same size (offcourse they x1 common). To fill color beteen these two curves. Follow:
x = [x1 ; flipud(x1)] ;
y = [y1 ; flipud(y2)] ;
patch(x,y,'r')
You need to arrange the data such that, the data form a closed region.

Preguntada:

el 14 de Dic. de 2020

Respondida:

el 17 de Dic. de 2020

Community Treasure Hunt

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

Start Hunting!

Translated by