Matlab - como cambiar el punto de partida del texto dentro de una leyenda

   
Vista:

como cambiar el punto de partida del texto dentro de una leyenda

Publicado por Gabriela Flores (14 intervenciones) el 26/02/2018 22:25:24
Hola expertos!

Aquí abajo, descripción del problema, junto con los códigos usados

Tengo un gráfico con varios paneles (que cree usando axes y no subplot), luego quiero hacer una leyenda común
para todos los paneles, que quiero agregar a un costado. Para esto hice un falso gráfico (que queda fuera de la imagen), que tenga tantas lineas como quiero juntar en la leyenda, y coloco la leyenda dentro de la imagen.

1
2
3
4
5
6
7
8
9
10
11
12
Fake=zeros(10,4);
LaLeyenda=cell(4,1);
LaLeyenda{1}='Observado';
LaLeyenda{2}='Modelo 1';
LaLeyenda{3}='Modelo 2';
LaLeyenda{4}='Modelo 3';
ColoresFake=[0 0 0;0.4, 0.2 0;1 0.27 0;0.5 0 0.5];
    axes('Position',[1.2,1.2,0.1,0.1])
    for c=1:4
        plot(Fake(:,c),Fake(:,c),'k-','Color',ColoresFake(c,:),'LineWidth',2)
        hold on
    end

Si ocupo legend(LaLeyenda,'Location'[0.95,0.7,0.1,0.1],'FontSize',9), le leyenda tiene lineas muy largas, por lo que
ocupa demasiado espacio. Entonces busque en internet un código para modificar el largo de las lineas

1
2
3
4
5
6
7
8
9
lh=legend(LaLeyenda,'Location',[0.95,0.6,0.1,0.1])
ch=get(lh,'children')
I2=get(ch(2))
% Aqui se ve que XData tiene 2 elementos
xd=get(ch(2),'XData')
set(ch(2),'XData',[xd(1), xd(2)-0.05])
set(ch(5),'XData',[xd(1), xd(2)-0.05])
set(ch(8),'XData',[xd(1), xd(2)-0.05])
set(ch(11),'XData',[xd(1), xd(2)-0.05])

Lo de arriba funciona, pero me queda un gran espacio entre que terminan las líneas de la leyenda y empiezan los textos, pero no me resulta (ver comentario en xd2New)

1
2
3
4
5
6
7
8
I1=get(ch(1))
% Aqui se ve que XData tiene 1 elemento
xd2=get(ch(1),'XData')
xd2New=100 % Aquí da lo mismo el valor que le de a xd2New, el punto de partida de los textos de la leyenda no cambia
set(ch(1),'XData',xd2New)
set(ch(4),'XData',xd2New)
set(ch(7),'XData',xd2New)
set(ch(10),'XData',xd2New)

Les agradecería si pueden ayudarme a re-posicionar el texto dentro de la leyenda, de manera de dejar poco espacio entre las nuevas lineas de la leyenda y sus textos asociados.

El matlab que uso es R2014a

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de JOSE JEREMIAS CABALLERO

como cambiar el punto de partida del texto dentro de una leyenda

Publicado por JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (4599 intervenciones) el 26/02/2018 22:47:41
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
>> graficos
 
lh =
 
  Legend (Observado, Modelo 1, Modelo 2, Modelo 3) with properties:
 
         String: {'Observado'  'Modelo 1'  'Modelo 2'  'Modelo 3'}
       Location: 'none'
    Orientation: 'vertical'
       FontSize: 9
       Position: [0.8000 0.6000 0.1000 0.1000]
          Units: 'normalized'
 
  Show all properties
 
 
ch =
 
  0x0 empty GraphicsPlaceholder array.
 
Index exceeds matrix dimensions.
 
Error in graficos (line 28)
I2=get(ch(2))
 
          BeingDeleted: 'off'
                   Box: 'on'
            BusyAction: 'queue'
         ButtonDownFcn: @bdowncb
              Children: []
                 Color: [1 1 1]

La parte de children me sale vacío. ¿Que le sale a ud.?

Saludos
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
Servicios de programación matlab


http://matlabcaballero.blogspot.com
https://www.facebook.com/matlabcaballero
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

como cambiar el punto de partida del texto dentro de una leyenda

Publicado por Gabriela Flores (14 intervenciones) el 26/02/2018 23:11:38
Para I2 (características para las lineas de la leyenda) me sale
Children: [0*1 double]
Para I1 (características para el texto)
Children: [0*1 double]

Yo no se que es children,

solo se que al modificar Xdata asociado a ch(2) (y luego 5, 8 y 11 al tener 4 lineas el gráfico) se puede modificar el largo de linea
y pensé que el modificar Xdata asociado a ch(1) (y luego 4, 7 y 10 al tener 4 lineas el gráfico) se podia modificar la posición desde donde parten los textos asociados a las lineas

Quedo atenta, gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Revisar política de publicidad