Custom Legend Placement on a Plot

50 vues (au cours des 30 derniers jours)
Jim
Jim le 21 Mar 2013
Commenté : Sebastian Lopez le 30 Déc 2020
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).

Réponses (1)

Peter
Peter le 21 Mar 2013
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 commentaires
Peter
Peter le 22 Mar 2013
Don't the line/marker styles appear in the legend box that is created with the h = legend(...) command?
Sebastian Lopez
Sebastian Lopez le 30 Déc 2020
Works perfectly fine! Thanks

Connectez-vous pour commenter.

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by