# how to do plotting with different colors in same figure?

518 views (last 30 days)

Show older comments

My sample code is this:

x=[1:100];

for i=1:5

y(:,i)=i*log(x);

end

This plots 5 different curves of same color.

How to plot each curve with a different color ?

##### 2 Comments

CPS
on 2 Mar 2017

x=[1:100];

for i=1:5

y(:,i)=i*log(x);

end

plot(x,y)

This will generate an automatic graph.

Image Analyst
on 2 Mar 2017

### Accepted Answer

Simon
on 6 Nov 2013

Hi!

If you plot like

plot(x,y)

and y is a matrix, you get plots with different color automatically. But you can do something like this to get manual coloring:

colorstring = 'kbgry';

figure(1); cla;

hold on

for i = 1:5

plot(x,y(:, i), 'Color', colorstring(i))

end

##### 7 Comments

Kamilu Sanusi
on 1 May 2023

Image Analyst
on 2 May 2023

Edited: Image Analyst
on 2 May 2023

@Kamilu Sanusi sorry I don't have that function on my computer. See if there is a 'LineWidth' or 'MarkerSize' option for it.

help pzmap

### More Answers (7)

Kelly Kearney
on 6 Nov 2013

Also, using colormaps and set with multiple handles + cell arrays can be helpful if you need a lot of colors.

x = 1:100;

ii = (1:20)';

y = ii*log(x);

h = plot(x,y);

set(h, {'color'}, num2cell(jet(length(ii)), 2));

##### 3 Comments

Image Analyst
on 6 Nov 2013

Korosh Agha Mohammad Ghasemi
on 7 Dec 2020

Edited: Korosh Agha Mohammad Ghasemi
on 7 Dec 2020

%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

##### 0 Comments

PeopleMATLAB
on 13 Oct 2016

colormap jet;

cmap=colormap;

for i=1:5

Plot_color=cmap(i/5,:);

plot(x, y(i,:), 'Color', Plot_color);

hold on;

end

hold off;

##### 2 Comments

farhat khan
on 19 Jul 2019

##### 1 Comment

Image Analyst
on 19 Jul 2019

I don't beleive you can plot a single set of data with two colors and one call to plot (plotyy notwithstanding). You have to keep track of the handle of the things you plotted:

hGreen = plot(x1, y1, 'g-'); % Plot a green line.

hBlack = plot(x2, y2, 'k-'); % Plot a black line.

I'm not sure how you'd detect what the color was if you didn't save the handle to the colored line you plotted, but maybe there is a way by using findobj() and seeing if you can get the color of any line object as a property. It's certainly not as straightforward so I recommend you just save the handles to the colors of the lines you drew, if you plan to detect them later.

SYAHIRAH ZAKI
on 7 Dec 2020

hi does anoyne know how to get different plot colors for each of my graph?

if i change the 'r' to 'g', i only get one color for each of my graph. I need each of my plot in different colour. please help me :(

% Script file graph2.

% Several plots of the rational function y = x/(1+x^2)

% in the same window.

k = 0;

for n=1:3:10

n10 = 10*n;

x = linspace(-2,2,n10);

y = x./(1+x.^2);

k = k+1;

subplot(2,2,k)

plot(x,y,'r')

title(sprintf('Graph %g. Plot based upon n = %g points.' ...

, k, n10))

xlabel('x')

ylabel('y')

axis([-2,2,-.8,.8])

grid

pause(3);

end

##### 0 Comments

Da Bu
on 22 Apr 2021

for a small set of colors, you can use ColorOrderIndex

t=1:0.1:2*pi;

for i=1:5

plot(t,sin(t)*i), hold on

ax = gca;

ax.ColorOrderIndex = i;

end

##### 0 Comments

### See Also

### Categories

### Products

### Community Treasure Hunt

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

Start Hunting!