Setting legend of a plot
Mostra commenti meno recenti
How do I set up a legend like this(two curves one legend then some gap)??

2 Commenti
VBBV
il 31 Gen 2024
The plots you show have custom legends.
Try this link available in FEX where you can change the legend layout and behavior as you wanted
Why not plot an empty line along side and use a blank as its legend entry?
x = 0:0.01:10;
figure
plot(x, sin(x))
hold on
plot(x,cos(x));
plot(x,floor(x/5))
plot(x,NaN(size(x)))
xlim([-1 11])
str = ["sin" "cos" "custom" ""];
legend(str, 'NumColumns', 2)
Risposta accettata
Più risposte (2)
Image Analyst
il 30 Gen 2024
0 voti
Hello Shahriar,
It looks like you want to overlay two sets of axes, with the larger one encompassing the smaller, and include a common legend for both in MATLAB. To accomplish this task, adhere to the following instructions:
- First, Create an axes called "larger" and add plots to it.
- Next, define a another axes called "smaller" to be positioned within the "larger" axes.
- Finally,to create a common legend, plot invisible lines and assign the legends to them.
Here's the MATLAB code for your reference:
x = linspace(1, 10, 100);
y1 = log(x);
y2 = log(x.^2);
y3 = log(x.^3);
y4 = log(x.^4);
figure;
larger = axes;
plot(larger, x, y1, 'r-', x, y2, 'b-', x, y3, 'g-', x, y4, 'k-');
hold(larger, 'on');
smaller = axes('Position', [0.2 0.6 0.25 0.25]);
plot(smaller, x, y1, 'r-', x, y2, 'b-', x, y3, 'g-', x, y4, 'k-');
h1 = plot(larger, NaN, NaN, 'r-');
h2 = plot(larger, NaN, NaN, 'b-');
h3 = plot(larger, NaN, NaN, 'g-');
h4 = plot(larger, NaN, NaN, 'k-');
legend(larger, [h1, h2, h3, h4], {'log(x)', 'log(x^2)', 'log(x^3)', 'log(x^4)'});
Hope this helps you to understand how to have a common legend for two nested axes
Regards
Vinayak Luha
Categorie
Scopri di più su Legend in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!




