several shaded areas between temporal series

1 visualizzazione (ultimi 30 giorni)
Mireia Fontanet
Mireia Fontanet il 19 Dic 2018
Commentato: Yingjun Zhang il 19 Gen 2020
Dear,
I am trying to plot several shaded areas with diferent temporal series. I've copied my code and attached my result:
A=xlsread('T.xlsx');
x = A(:,1);
MZ1=A(:,2);
MZ2=A(:,3);
min1=A(:,7);
max1 = A(:,8);
min2=A(:,9);
max2 = A(:,10);
figure
plot(x,MZ1,x, min1, x, max1,x,min2,x,max2,x,MZ2);
fill([x.',fliplr(x.')], [min1.',fliplr(max1.')], 'r')
fill([x.',fliplr(x.')], [min2.',fliplr(max2.')], 'g')
I have 2 problems:
  1. The code represents just a shaded area (in this case I have two areas.)
  2. I have two lines, representing the max and min average. They are not represented by my code.
Thanks,
shadedarea.png
  1 Commento
Image Analyst
Image Analyst il 19 Dic 2018
Modificato: Image Analyst il 19 Dic 2018
Where is the second area?
Exactly what does "the max and min average" mean? What is a "min average"?
In general, if you have two curves, you can have multiple areas
  1. The region above curve 1
  2. The region above curve 2
  3. The region above the curve that is topmost at any x location
  4. The region below curve 1
  5. The region below curve 2
  6. The region below the curve that is bottommost at any x location
  7. The in-between region where curve 1 is above curve 2
  8. The in-between region where curve 1 is below curve 2
  9. The in-between region regardless of which curve is on top.
Please tell us what numbers, from the list above, you want shaded, and which color should go with which numbered region.

Accedi per commentare.

Risposte (1)

Mireia Fontanet
Mireia Fontanet il 20 Dic 2018
I explian what mean each colum and I have attached the excel file:
A=xlsread('T.xlsx');
x = A(:,1); %time
MZ1=A(:,2); %average area 1
MZ2=A(:,3); %average area 2
min1=A(:,4); %minimum value area 1
max1 = A(:,5); %maximum value area 1
min2=A(:,6); %minimum value area 2
max2 = A(:,7); %maximum value area 2
figure
plot(x,MZ1,x, min1, x, max1,x,min2,x,max2,x,MZ2);
fill([x.',fliplr(x.')], [min1.',fliplr(max1.')], 'r')
fill([x.',fliplr(x.')], [min2.',fliplr(max2.')], 'g')
  1 Commento
Yingjun Zhang
Yingjun Zhang il 19 Gen 2020
Try below
fill([x.',fliplr(x.')], [min1.',fliplr(max1.')], 'r')
hold on
fill([x.',fliplr(x.')], [min2.',fliplr(max2.')], 'g')

Accedi per commentare.

Community Treasure Hunt

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

Start Hunting!

Translated by