5 825 views (last 30 days)

Hi, is there somewhere I can see some examples of scripts that result in multiple plots on one graph?

I know the 'hold' function is part of how to do it, but I'm very new to Matlab and I really need to see some full examples.

If someone could point me towards some that'd be great.

Chandra Kurniawan
on 10 Dec 2011

Edited: MathWorks Support Team
on 9 Nov 2018

To combine multiple plots in one graph, use the “hold on” command, such as:

plot(1:10)

hold on

plot(11:20)

hold off

For more information, see:

Walter Roberson
on 10 Dec 2011

The alternative to "hold on" that would be applicable to this example is

plot(t,x,'r',t,y,'b')

Ina Panci
on 10 May 2019

Hello, what other letters can we use if we have more than two functions to plot?

Cleat Zeiler
on 15 Oct 2019

This is the list from the help call:

Various line types, plot symbols and colors may be obtained with

plot(X,Y,S) where S is a character string made from one element

from any or all the following 3 columns:

b blue . point - solid

g green o circle : dotted

r red x x-mark -. dashdot

c cyan + plus -- dashed

m magenta * star (none) no line

y yellow s square

k black d diamond

w white v triangle (down)

^ triangle (up)

< triangle (left)

> triangle (right)

p pentagram

h hexagram

Sign in to comment.

N Narayan rao
on 25 Sep 2016

Edited: Walter Roberson
on 15 Jul 2017

x = -3:0.1:3;

y1 = sin(x);

y2 = cos(x);

y3= tan(x);

y4=1./cos(x);

figure

subplot(2,2,1)

plot(x,y1)

title('Subplot 1')

subplot(2,2,2)

plot(x,y2)

title('Subplot 2')

subplot(2,2,3)

plot(x,y3)

title('Subplot 3')

subplot(2,2,4)

plot(x,y4)

title('Subplot 4')

Sign in to comment.

Raghuram
on 27 Mar 2014

Prasad Kalane
on 11 Dec 2015

x=rand(2,10);

scatter(x(1,:),x(2,:),'r');

hold on

x=rand(2,10);

scatter(x(1,:),x(2,:),'g');

hold on

x=rand(2,10);

scatter(x(1,:),x(2,:),'b');

hold on

x=rand(2,10);

scatter(x(1,:),x(2,:),'c');

You can plot multiple plot just use "hold on" command

Walter Roberson
on 15 Jul 2017

"can I get best fit line from this method?"

Best fit lines tend to imply an ordering to the data, but scatter plots tend to imply the data might not be ordered in a way that is compatible with fitting.

But yes, if you have polynomial coefficients for your fit, such as coefficients generated using polyfit(), then you can use polyval() to interpolate values, and you can "hold on" and plot() the values.

Sign in to comment.

Cortney Marschner
on 8 Oct 2016

Edited: Walter Roberson
on 15 Jul 2017

How do I plot multiple graphs on the same graph using this code?:

hold off

[x, y] = meshgrid(0:0.2:10, 0:0.2:6);

X = x(1,1:51);

dx = ones(size(x));

dy = x;

quiver(x, y, dx, dy)

axis tight

hold on

plot(X, 1+X.^2/2)

Walter Roberson
on 15 Jul 2017

Sign in to comment.

utkarsh singhvi
on 17 Apr 2018

command to plot multiple function on one graph

Sign in to comment.

Sign in to answer this question.

Opportunities for recent engineering grads.

Apply Today
## 2 Comments

## Direct link to this comment

https://se.mathworks.com/matlabcentral/answers/23591-how-do-i-combine-multiple-plots-in-one-graph#comment_433968

⋮## Direct link to this comment

https://se.mathworks.com/matlabcentral/answers/23591-how-do-i-combine-multiple-plots-in-one-graph#comment_433968

## Direct link to this comment

https://se.mathworks.com/matlabcentral/answers/23591-how-do-i-combine-multiple-plots-in-one-graph#comment_593667

⋮## Direct link to this comment

https://se.mathworks.com/matlabcentral/answers/23591-how-do-i-combine-multiple-plots-in-one-graph#comment_593667

Sign in to comment.