Add header to legend columns
40 views (last 30 days)
Show older comments
Hello everyone,
I'd like to add a header to each column of a legend, which I manually did by calling the legend function with the parameter ('Box','off') and adding a rectangle around the legend as well as a text box containing the headers in bold (see attached file). Unfortunately, the grid can be seen through the legend by this method. How can I achive a better looking result without the grid lines in the rectangle?
Thanks for your help!
7 Comments
Sulaymon Eshkabilov
on 16 Feb 2023
Use:
legend('box', 'off') % Get rid off the box and line
Dyuman Joshi
on 16 Feb 2023
There doesn't seem any way to remove that particular line.
The only other way seems to be, is that you draw two white lines and name their legend 'plate:' and 'cylinder:' to get what you want. Even in that case, alignment will be different.
x = 0:0.01:10;
s=sin(x);
c=cos(x);
plot(x,x*0,'w',x,s,x,c,x,s+c,x,x*0,'w',x,s.*c,x,s-c,x,c-s)
grid on
ylim([-2.5 3.5])
l=legend({'plate:', 'sin', 'cos', 'sin+cos', 'cylinder:','sin*cos', 'sin-cos', 'cos-sin'}, 'Location', 'NorthWest', 'NumColumns', 2);
%t=title(l,'plate: cylinder: ');
Answers (1)
Raghvi
on 16 Feb 2023
Hey,
Although it doesn’t create the desired spacing, you can try out the following piece of code:
lgd = legend({'1->2','3->4','1->2','3->4'},...
'Location','northwest','NumColumns',2);
title(lgd,['plate: ' 'cylinder:'])
Alternatively, you can work around by using two different legends for the different lines all together and provide them both with a separate title using the title function.
Refer to the following MATLAB Answer to understand how to do so:
0 Comments
See Also
Categories
Find more on Legend 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!