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
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

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

Publicado por JOSE JEREMIAS CABALLERO (5917 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