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.
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
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)
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
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


0