Filter löschen
Filter löschen

Shading area under the curve

193 Ansichten (letzte 30 Tage)
Youngmin
Youngmin am 16 Mai 2020
Kommentiert: Youngmin am 16 Mai 2020
Hello,
I am struggling with shading area under the curve at the selected area. I wanted to fill the area over Body Weight line. I have attached my code and the screenshot of the plot.
x = 0:2500;
Lvy = (611 <= x)&(vgrf2 >= bw) & (x < 794);
figure(1)
plot(x,vgrf2,'k')
hold on;
xline(lcom,'k--','Lowest COM position','LabelHorizontalAlignment','center',...
'LabelOrientation','horizontal');
yline(bw,'k--',{'Body','Weight'},'LabelHorizontalAlignment','left',...
'LabelVerticalAlignment','middle');
patch([x(Lvy) fliplr(x(Lvy))], [ones(size(x(Lvy))) fliplr(vgrf2(Lvy))], 'g')
hold off;
  2 Kommentare
Walter Roberson
Walter Roberson am 16 Mai 2020
Can you attach your data for testing?
Youngmin
Youngmin am 16 Mai 2020
I have attached the sample.mat file on the original post. Also, BW is 762.6170, and lcom is 611.

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Mehmed Saad
Mehmed Saad am 16 Mai 2020
Bearbeitet: Mehmed Saad am 16 Mai 2020
Use area for that purpose by selecting the specific range and use area
x = 0:2500;bw =700;lcom = 611;
Lvy = (611 <= x)&(vgrf2 >= bw) & (x < 794);
figure(1)
plot(x,vgrf2,'k')
hold on;
xline(lcom,'k--','Lowest COM position','LabelHorizontalAlignment','center',...
'LabelOrientation','horizontal');
yline(bw,'k--',{'Body','Weight'},'LabelHorizontalAlignment','left',...
'LabelVerticalAlignment','middle');
selected_area = lcom:793;
area(selected_area,vgrf2(selected_area),bw,'EdgeColor','none','FaceColor','g')
Also to select all the area ahead of this point which is greater than bw in y and lcom in x
load('sample.mat')
x = 0:2500;bw =700;lcom = 611;
figure(1)
plot(x,vgrf2,'k')
hold on;
xline(lcom,'k--','Lowest COM position','LabelHorizontalAlignment','center',...
'LabelOrientation','horizontal');
yline(bw,'k--',{'Body','Weight'},'LabelHorizontalAlignment','left',...
'LabelVerticalAlignment','middle');
ind = (vgrf2>bw)&x>lcom;
vgrf2(~ind) = NaN;
area(x,vgrf2,bw,'EdgeColor','none','FaceColor','g')
  6 Kommentare
Mehmed Saad
Mehmed Saad am 16 Mai 2020
Bearbeitet: Mehmed Saad am 16 Mai 2020
set the ShowBaseLine property of area to off
area(x,vgrf2,bw,'EdgeColor','none','FaceColor','g','ShowBaseLine','off')
Youngmin
Youngmin am 16 Mai 2020
Thank you. it works very well!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Discrete Data Plots finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by