How to have two legends on the same plot?

362 次查看(过去 30 天)
I just want to see a basic example of how to put two legends on the same plot on MATLAB 2020 and beyond...
  1 个评论
Umar
Umar 2024-8-5,5:28

Hi @ Miguel Martinez,

To address your query regarding, “ However, when using semilogy it didn't work”

First, generate some sample data for plotting. For this example, we will create two sets of data.

x = 1:10;

y1 = 10 ./ x;

y2 = log(x);

Plot the data using the semilogy function.

semilogy(x, y1, 'b', x, y2, 'r');

Add legends for both datasets using the legend function. To display two legends, you can use the legend function twice.

legend('Data 1', 'Data 2'); legend('Location', 'northwest'); % Adjust the location of the first legend

If you want, you can customize the legends further by specifying the location, font size, font weight, etc. For example:

legend('Data 1', 'Data 2', 'Location', 'northwest', 'FontSize', 10, 'FontWeight', 'bold');

Please see attached plot.

请先登录,再进行评论。

回答(2 个)

Askic V
Askic V 2023-2-23
Perhaps you meant this:
t = 0:0.1:5;
y = sin(t);
z = cos(t);
figure; hold on;
for i = 1:2
p1(i) = plot(t, y,'r');
p2(i) = plot(t, z,'b');
end
hold off
legend([p1(1) p2(1)],'sin', 'cos');
ah1 = axes('position',get(gca,'position'),'visible','off');
legend(ah1, [p1(2) p2(2)], {'Test1','Test2'}, 'Location','SouthWest');
  2 个评论
Magalhães, A. L.
Magalhães, A. L. 2024-8-3,19:31
It worked fine for me. However, when using semilogy it didn't work. Apparently, this method forces it to be just a plot.
Magalhães, A. L.
Magalhães, A. L. 2024-8-3,19:52
编辑:Magalhães, A. L. 2024-8-3,19:52
All you need to fix this is to add the following row after the last semilogy's row:
set(gca,'yscale','log')

请先登录,再进行评论。


KSSV
KSSV 2023-2-23
figure
hold on
plot(rand(1,10),'r')
plot(rand(1,10),'b')
legend('One','Two')

类别

Help CenterFile Exchange 中查找有关 Legend 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by