Got Questions? Get Answers.
Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

Thread Subject:
How to shade area between two eCDFs with different vector sizes

Subject: How to shade area between two eCDFs with different vector sizes

From: Aytekin Gel

Date: 3 Dec, 2012 23:09:35

Message: 1 of 1

Hello,

I am trying to shade or fill the area between two empirical CDFs with single color. I reviewed the prior posts about fill or patch commands but unfortunately couldn't make use of it for this particular case where I have 100 samples for first eCDF (variable name: Yk) and 11 samples for the second eCDF (variable name : Yk_exp).

Attached below is a small prototype code to represent what I tried. I was able to use fill to create the yellow shaded area between two eCDFs with same size of vectors (L0 = fill (Val_x, Val_y,'y')). However, I also need to shade the area between two eCDFs shown as most right of the yellow shaded region and red line, which have different sizes.

Any suggestions will be greatly appreciated, sorry for the long message.

Thanks for your help and time,

Aytekin

P.S.
Matlab script:
% Input propagation data
Y = [
    1.9102051410387489e+01
    1.9196680482819982e+01
    1.9553051526315382e+01
    1.8604292110167986e+01
    1.8559913631880018e+01
    1.8763620742120445e+01
    1.9006847393775935e+01
    1.8973150699504238e+01
    1.9060291749919053e+01
    1.8592048442247727e+01
    1.9314131706573530e+01
    1.8923958835331717e+01
    1.9483188206081330e+01
    1.8921867375964251e+01
    1.8632910595374380e+01
    1.8859875879573757e+01
    1.8974499130682180e+01
    1.9183333056517533e+01
    1.8802524386018469e+01
    1.9362983124106421e+01
    1.9089234745240724e+01
    1.9121353802487178e+01
    1.9133867730577705e+01
    1.8854620382078195e+01
    1.8443741731012942e+01
    1.8612708503300546e+01
    1.9394038334977349e+01
    1.9246205247922575e+01
    1.8885203040396895e+01
    1.9305971639309163e+01
    1.9278493088620053e+01
    1.9089131644726983e+01
    1.9073370244873459e+01
    1.8855846323117241e+01
    1.9426455893493682e+01
    1.8749412828263409e+01
    1.9069512825324107e+01
    1.8539452367826069e+01
    1.9198375163368123e+01
    1.9212864160034876e+01
    1.9707054892545244e+01
    1.8801834726125108e+01
    1.9070719258817689e+01
    1.8912303971450790e+01
    1.9568896883242935e+01
    1.8999053052805809e+01
    1.9517528229517456e+01
    1.8925130556545831e+01
    1.9275555892478732e+01
    1.9224163017275320e+01
    1.9314226855968023e+01
    1.8949177507393593e+01
    1.8857686616835650e+01
    1.9039005577712576e+01
    1.9174378354531612e+01
    1.8811848819954069e+01
    1.8686562730426701e+01
    1.9048294127266001e+01
    1.8774689224470784e+01
    1.9261800279550894e+01
    1.9048477172043320e+01
    1.9050433688428711e+01
    1.8985112442147202e+01
    1.8865364622441085e+01
    1.8952863999499534e+01
    1.8826588105287833e+01
    1.8936769242021693e+01
    1.8818101570147412e+01
    1.8731641749457793e+01
    1.9009751353614803e+01
    1.8806570381737433e+01
    1.9384550619546857e+01
    1.9054257919723735e+01
    1.9024154904495198e+01
    1.8674127417449924e+01
    1.9032562038746342e+01
    1.8865169599154196e+01
    1.9364938402742567e+01
    1.8897246449657771e+01
    1.9505721693149056e+01
    1.9052910089073073e+01
    1.8938253055286662e+01
    1.9324821945119240e+01
    1.8620458077790559e+01
    1.9315959830706941e+01
    1.9099361446539728e+01
    1.9036047677416239e+01
    1.9059673302607102e+01
    1.8827671310010093e+01
    1.8827250144574045e+01
    1.8953121598286813e+01
    1.9021871779357511e+01
    1.9105948451757030e+01
    1.9231835229537754e+01
    1.8757428024499500e+01
    1.9181204676828024e+01
    1.8777812783790843e+01
    1.8562131663363225e+01
    1.8928153357390471e+01
    1.9360248154665840e+01
];

% Experimental data
Yk_exp = [20.83901004
       19.77982358
       21.16466533
       21.25291928
       19.81742617
       19.92574407
       20.58645521
       20.38834009
       19.5102916
       19.77407095
       20.22642447];

Yk = sort(Y(:,1));
Xk = 1 : 100;
Xk = Xk / 100;

% Set the discrepency to be appended both sides of input propagation
U_discrepency = 0.004;

% Calculate left and right CDFs for input propagation
SRQ_left = transpose(Y*(1-U_discrepency));
SRQ_right = transpose(Y*(1+U_discrepency));

Val_x = [sort(SRQ_left,'ascend') sort(SRQ_right,'descend')];
Val_y = [Xk sort(Xk,'descend')];

hold on
% Plot filled region for input propagation uncertainty
L0 = fill (Val_x, Val_y,'y');


% Plot input propagation CDF
plot(Yk, Xk, 'lineWidth',3)
set(gca,'linewidth',2)
set(gca,'fontweight','bold')
set(gca,'fontsize',12)

% Plot experimental empirical CDF
[ExpCDF,Expstats]=cdfplot(Yk_exp);
set(ExpCDF,'Color','r','lineWidth',3);
[CDF_Exp,Xkexp] = ecdf(Yk_exp);

% TESTING DIFFERENT OPTIONS: TO SHADE BETWEEN RIGHT SIDE of YELLOW shaded area and RED line
%patch([y1 fliplr(y2)], [x,fliplr(x2)],'g')
%fill([SRQ_right fliplr(Xkexp')], [Xk,fliplr(CDF_Exp')],'g')

grid on
box on

Tags for this Thread

What are tags?

A tag is like a keyword or category label associated with each thread. Tags make it easier for you to find threads of interest.

Anyone can tag a thread. Tags are public and visible to everyone.

Contact us