Setting legend of a plot

29 次查看(过去 30 天)
How do I set up a legend like this(two curves one legend then some gap)??
  2 个评论
VBBV
VBBV 2024-1-31
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
Dyuman Joshi
Dyuman Joshi 2024-1-31
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)

请先登录,再进行评论。

采纳的回答

Star Strider
Star Strider 2024-1-30
Set the original legend to 'Location','NE' and then use:
legend('boxoff')
Also, see Position Multiple Axes in Figure if you have not done so already.
  6 个评论
Star Strider
Star Strider 2024-1-31
As always, my pleasure!

请先登录,再进行评论。

更多回答(2 个)

Image Analyst
Image Analyst 2024-1-30
I think you'd have to build it up manually with the plot and text functions.

VINAYAK LUHA
VINAYAK LUHA 2024-1-30
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

类别

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