Custom Legend Placement on a Plot

I want to place a legend below the Title but above the plot area of a scatter plot. It looks like the built-in methods place the legend within the Plot Area or outside of the area defined by the Plot Area and Title. Is this true?
One method I considered was to include the contents of the legend in the bottom rows of a multi-line Title. However, I cannot figure out how to replicate the line / marker styles in a string (I am specifying the line and marker styles to be used in the plot).

Answers (1)

You could create a multiline title, using spaces to create room for the legend, and then move the legend, using its position property, like:
title({'Title';' ';' ';' '})
h = legend('line1','line2');
pos = get(h,'Position');
posx = 0.5;
posy = 0.85;
set(h,'Position',[posx posy pos(3) pos(4)]);
Change posx and posy to position your legend.

3 Comments

I am considering doing that. However, I don't know how to replicate the line / marker styles in the Title. In my particular case, I have different combinations of circle and square markers and solid and dashed lines. So, how do I display those line styles in the Title?
Don't the line/marker styles appear in the legend box that is created with the h = legend(...) command?
Works perfectly fine! Thanks

Sign in to comment.

Tags

Asked:

Jim
on 21 Mar 2013

Commented:

on 30 Dec 2020

Community Treasure Hunt

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

Start Hunting!