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 ?

 Respuesta aceptada

Robert Cumming
Robert Cumming el 10 de En. de 2012

3 votos

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 comentarios

Aravin
Aravin el 10 de En. de 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 el 10 de En. de 2012
see updated code.
Basically you pass the plot handle to the legend command.
SUDIP PODDAR
SUDIP PODDAR el 19 de Feb. de 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 el 23 de Feb. de 2012
subplot(1,4,1), plot([1:100],'DisplayName',sprintf ( 'Fig %i', c ));

Iniciar sesión para comentar.

Más respuestas (0)

Community Treasure Hunt

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

Start Hunting!

Translated by