I am trying to shade two area (Area A and B in the image below) under a curve with two different colours. Please help me out. mat file is attached.

1 回表示 (過去 30 日間)
As per my code, whole curve area is becoming green. I am trying to mark Area-A as green & Area-B as red. Code-
clc
a=importdata('robin roy.mat');
b=a.data;
x=b(22000:25830,1);
plot(x);
id = 1:length(x) ;
x(x<0)=[];
findpeaks(x);
findpeaks(x,'MinPeakHeight',1.15);
Area1 = trapz(id(1:447),x(1:447)) ;
Area2 = trapz(id(447:1815),x(447:1815)) ;
hold on
ha1 = area(x(x<=447),'FaceColor','g');
ha2 = area([447 x0], [y(x == 447) 0], 'FaceColor','r');
hold off
A1str = sprintf('Area 1 = %6.3f', Area1);
A2str = sprintf('Area 2 = %6.3f', Area2);
legend([ha1 ha2], A1str, A2str)

採用された回答

KSSV
KSSV 2017 年 3 月 16 日
a=importdata('robin roy.mat');
b=a.data;
x=b(22000:25830,1);
plot(x);
id = 1:length(x) ;
x(x<0)=[];
findpeaks(x);
findpeaks(x,'MinPeakHeight',1.15);
Area1 = trapz(id(1:447),x(1:447)) ;
Area2 = trapz(id(447:1815),x(447:1815)) ;
hold on
% ha1 = area(x(x<=447),'FaceColor','g');
% ha2 = area([447 x], [y(x == 447) 0], 'FaceColor','r');
ha1 = area(id(1:447),x(1:447),'FaceColor','g') ;
ha2 = area(id(447:1815),x(447:1815),'FaceColor','r') ;
hold off
A1str = sprintf('Area 1 = %6.3f', Area1);
A2str = sprintf('Area 2 = %6.3f', Area2);
legend([ha1 ha2], A1str, A2str)

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeResizing and Reshaping Matrices についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by