How can I put legend for some of my curves?
4 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Fatemeh Alaee
el 16 de Jul. de 2020
Comentada: Fatemeh Alaee
el 17 de Jul. de 2020
Hi, I've plotted two functions in one plot, in which each function is plotted based on different amount of "p" , i.e. there are 6 numbers for "p", for each function, and I have 12 curves in a plot. The point is my functions are "y1=f(x)" and "y2=-f(x)" , and every pair of functions ( y1, y2) has the same p. Is there a way that I can introduce each pair of curves with one "p" in legend? And those pair which has the same p, plot with the same color? Thank you in advance
0 comentarios
Respuesta aceptada
Takumi
el 16 de Jul. de 2020
I created a example code.
col = [0 ,0 ,0;
255,0, 0 ;
0, 255,0 ;
0, 0, 255;
255,255,0 ;
0, 255,255]./255; % color array
func = @(x,p) p*sqrt(x); % some function
x = linspace(0,10);
p = 1:6; % some factor
y = zeros(length(p),length(x));
for i=1:length(p)
y(i,:) = func(x,p(i));
plot(x,y(i,:),'Color',col(i,:)); % +function
hold on
plot(x,-y(i,:),'Color',col(i,:),'HandleVisibility','off'); % -function, legend is not shown
end
legend(strcat('p=',num2str(p')))
4 comentarios
Takumi
el 17 de Jul. de 2020
Editada: Takumi
el 17 de Jul. de 2020
How about this way?
col = [0 ,0 ,0;
255,0, 0 ;
0, 255,0 ;
0, 0, 255;
255,255,0 ;
0, 255,255]./255; % color array
func = @(x,p) p*sqrt(x); % some function
x = linspace(0,10);
p = 1:6; % some factor
y = zeros(length(p),length(x));
for i=1:length(p)
y(i,:) = func(x,p(i));
s(i) = plot(x,y(i,:),'Color',col(i,:),'DisplayName',sprintf('p=%2.1f',p(i))); % +function
hold on
plot(x,-y(i,:),'Color',col(i,:));
end
legend(s)
Más respuestas (0)
Ver también
Categorías
Más información sobre Legend en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!