Además de @yuk respuesta, si usted tiene una leyenda dibuja así,
hline = findobj(gcf, 'type', 'line');
volverá N x 3
líneas (o más precisamente - lines plotted + 2x lines in legend
). Aquí veré solo el caso cuando todas las líneas que se trazan también están en la leyenda.
La secuenciación es raro: en el caso de 5 líneas (vamos a ellas observamos 1 to 5
) trazada y la leyenda añadido, tendrá
hline:
1 : 5 th line (mistical)
2 : 5 th line (in legend)
3 : 4 th line (mistical)
4 : 4 th line (in legend)
5 : 3 th line (mistical)
6 : 3 th line (in legend)
7 : 2 th line (mistical)
8 : 2 th line (in legend)
9 : 1 th line (mistical)
10: 1 th line (in legend)
11: 5 th line (in plot)
12: 4 th line (in plot)
13: 3 th line (in plot)
14: 2 th line (in plot)
15: 1 th line (in plot)
Como solución (la dilación viernes por la noche) Hice este pequeño bebé:
Solución 1: si no desea restablecer la leyenda
detectar si hay una leyenda y el número de lin ES se trazan:
hline = findobj(gcf, 'type', 'line');
isThereLegend=(~isempty(findobj(gcf,'Type','axes','Tag','legend')))
if(isThereLegend)
nLines=length(hline)/3
else
nLines=length(hline)
end
Para cada línea se encuentran los mangos rectos y hacer las cosas de esa línea (que se aplicará también a la línea correspondiente leyenda)
for iterLine=1:nLines
mInd=nLines-iterLine+1
if(isThereLegend)
set(hline([(mInd*2-1) (mInd*2) (2*nLines+mInd)]),'LineWidth',iterLine)
else
set(hline(mInd),'LineWidth',iterLine)
end
end
Esto hace que cada línea de i-th
con el width=i
y aquí puede agregar el cambio automático de propiedad;
Solución 2: que sea sencillo
Deshacerse de la leyenda, cuidar de las líneas, restablecer la leyenda.
legend off
hline = findobj(gcf, 'type', 'line');
nLines=length(hline)
for iterLine=1:nLines
mInd=nLines-iterLine+1
set(hline(mInd),'LineWidth',iterLine)
end
legend show
esto podría no ser adecuado para situaciones en las que la leyenda debe ser colocado en algún lugar speciffic etc.
¡Muchas gracias! Eso funcionó bien! – aarelovich