# How do I combine multiple plots in one graph?

1,047 次查看（过去 30 天）
Tom 2011-12-10

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.
##### 3 个评论显示 2更早的评论隐藏 2更早的评论
Mebin Cherian 2020-11-25
Hey, @tayyaba, I have to plot graphs of various iterations into the same graph, and the labels are written during each iteration. My problem is that the legend gets overwritten each time instead of being appended to the already existing legend. soln?
semilogy(snr,error(i));
Label=append('Error',error(i));
label(Label);
hold on;

### 采纳的回答

Chandra Kurniawan 2011-12-10

To combine multiple plots in one graph, use the “hold on” command, such as:
plot(1:10)
hold on
plot(11:20)
hold off
##### 3 个评论显示 2更早的评论隐藏 2更早的评论
Cleat Zeiler 2019-10-15
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

### 更多回答（7 个）

N Narayan rao 2016-9-25

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')
##### 1 个评论显示 无隐藏 无
AT 2021-12-31
How can we run many simulations at the same time? (for example for 1000 simulations)
or
How can we plot more than 100 graphs in one plot?

Tom 2011-12-10
Thanks, that's perfect.
##### 0 个评论显示 -1更早的评论隐藏 -1更早的评论

Raghuram 2014-3-27
Could you please tell me the same with scatter plot command? That is, to plot multiple scatter plots in one figure?
##### 3 个评论显示 2更早的评论隐藏 2更早的评论
Walter Roberson 2017-7-15
"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.

Cortney Marschner 2016-10-8

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)
##### 1 个评论显示 无隐藏 无
Walter Roberson 2017-7-15
That code already plots multiple lines on the same plot. However, the y range of the second one is much larger than the y range of the first, so the second one takes up most of the space.

utkarsh singhvi 2018-4-17
command to plot multiple function on one graph
##### 0 个评论显示 -1更早的评论隐藏 -1更早的评论

Emil Latypov 2020-4-16

In chemistry, the pH of an aqueous solution is a measure of its acidity. The pH scale ranges from 0 to 14, inclusive. A solution with a pH of 7 is said to be neutral, a solution with a pH greater than 7 is basic, and a solution with a pH less than 7 is acidic.
I did it, but my prof said it is not professional. How to do it professionally?
%% Chapter 8 Question 19
%% This script cteats the a vector structure mysol with various solutions
%% and their pH-values and adds another field mysol.acidity.
clear
clc
format compact
mysol(3) = struct('name','bleach','pH',12);
mysol(1) = struct('name','juce','pH',5);
mysol(2) = struct('name','milk','pH',7);
acidity = myacidity(mysol);
for i = 1:3
mysol(i).acidity = strcat(acidity(i,:));
end
mysol
mysol.acidity
function acidity = myacidity(mysol)
% This function receives a vector structure with various solutions and
% their pH-values and determines acidity of solutions.
len = length(mysol);
acidity(len,:) = blanks(7);
for i = 1:len
if mysol(i).pH < 7
acidity(i,:) = 'acidic ';
elseif mysol(i).pH > 7
acidity(i,:) = 'basic ';
else
acidity(i,:) = 'neutral';
end
end
end
##### 2 个评论显示 1更早的评论隐藏 1更早的评论
Walter Roberson 2020-4-17
The line
mysol(i).acidity = strcat(acidity(i,:));
should probably be rewritten in terms of strtrim()

Sankirna D. Joge 2020-8-17
One must use hold on command after every plot,
plot(x1,y1);
hold on
plot(x2,y2);
hold on
plot(x3,y3);
hold off
This will give output as three plots on a same graph.
##### 1 个评论显示 无隐藏 无
Walter Roberson 2020-8-17
This is not correct. "hold on" stays in effect until you turn it off (or the axes is cleared or deleted.)

### 类别

Find more on 2-D and 3-D Plots in Help Center and File Exchange

### Community Treasure Hunt

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

Start Hunting!