How to change the color of a graph only in a particular section?

23 ビュー (過去 30 日間)
M G
M G 2011 年 3 月 17 日
Hey all,
I was just wondering if there is a way to change a particular part of a plot to another color? Suppose we have a plotted signal in BLUE and we wannan show the main response (let's say with the highest amplitude) in RED.

採用された回答

Jan
Jan 2011 年 3 月 17 日
You can draw different lines.
t = 0:0.02:4*pi;
y = sin(t);
index = (y >= 0);
plot(t, y, 'b');
plot(t(index), y(index), 'r');
  1 件のコメント
Matt Tearle
Matt Tearle 2011 年 3 月 22 日
A nice trick to remove points graphically is to set them to NaN. Eg
t = 0:0.02:4*pi;
y = sin(t);
z1 = y;
z1(y>=0) = NaN;
z2 = y;
z2(y<0) = NaN;
plot(t,z1,'b',t,z2,'r')
And while I'm here, I might as well peddle my wares: http://www.mathworks.com/matlabcentral/fileexchange/30423-conditionally-colored-line-plot

サインインしてコメントする。

その他の回答 (1 件)

Korosh Agha Mohammad Ghasemi
Korosh Agha Mohammad Ghasemi 2020 年 12 月 7 日
%https://zil.ink/korosh -------- Ways to contact me ----------
% Korosh Agha Mohammad Ghasemi !
% Chemical Engineering at Shiraz University
x=linspace(0,2,100);
figure;
for a=[0.1 0.5 1 2 4]
y=x.^a; %The function is hypothetical
if a == 0.1 %Any color can be substituted
y=x.^a;
plot(x,y,'k') %Now choose the color
hold on
elseif a == 0.5
y=x.^a;
plot(x,y,'b') %Now choose the color
hold on
elseif a==1
y=x.^a;
plot(x,y,'g') %Now choose the color
hold on
elseif a==2
y=x.^a;
plot(x,y,'r') %Now choose the color
hold on
elseif a==4
y=x.^a;
plot(x,y,'y') %Now choose the color
hold on
grid on
end
end

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by