How to show legend as subfigure

Dear All,
Let say I have subplots of 4 figures. First three figures have some curve plots. I want to show last figure (the forthone) as legend of figure three.
subplot(1,4,1), plot([1:100],'DisplayName','Fig 1');
subplot(1,4,2), plot([1:100],'DisplayName','Fig 2');
subplot(1,4,3), plot([1:100],'DisplayName','Fig 3');
now at figure 4 I want to show legend of figure 3. Is it possible ?

 Réponse acceptée

Robert Cumming
Robert Cumming le 10 Jan 2012

3 votes

With some manipulation of the legend position handle you can:
EDIT: to update the text in legend
subplot(1,4,1), plot([1:100],'DisplayName','Fig 1');
subplot(1,4,2), plot([1:100],'DisplayName','Fig 2');
subplot(1,4,3), fig3handle = plot([1:100],'DisplayName','Fig 3');
a3pos = get ( gca, 'position' )
a = legend ( fig3handle )
get ( a, 'position' )
set ( a, 'position', [(a3pos(1)+a3pos(3)+(1-(a3pos(1)+a3pos(3)))/2)-a3pos(3)/2 a3pos(2) a3pos(3) a3pos(4)] )

4 commentaires

Aravin
Aravin le 10 Jan 2012
Dear Robert, Thanks for your reply. But I m interested to get legend of figure 3. Let say in figure 3 I have five strings. So I want to get all in figure 4 position. As your example is pretty good but you are having fix legend('A'); that i don't want.
Please suggest.
Robert Cumming
Robert Cumming le 10 Jan 2012
see updated code.
Basically you pass the plot handle to the legend command.
SUDIP PODDAR
SUDIP PODDAR le 19 Fév 2012
is it possible to add display name dynamically? First time it shows fig 1 & then fig 2 like
c=1:10
subplot(1,4,1), plot([1:100],'DisplayName','Fig 'c);
plz help me
Robert Cumming
Robert Cumming le 23 Fév 2012
subplot(1,4,1), plot([1:100],'DisplayName',sprintf ( 'Fig %i', c ));

Connectez-vous pour commenter.

Plus de réponses (0)

Community Treasure Hunt

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

Start Hunting!

Translated by