outside leyendas español ejemplos change matlab matlab-figure legend

leyendas - plot matlab



Añadir leyenda personalizada sin ninguna relación con el gráfico (2)

Así es como he resuelto este problema en el pasado:

figure t=linspace(0,10,100); plot(t,sin(t)); hold on; h = zeros(3, 1); h(1) = plot(NaN,NaN,''or''); h(2) = plot(NaN,NaN,''ob''); h(3) = plot(NaN,NaN,''ok''); legend(h, ''red'',''blue'',''black'');

Esto trazará los puntos adicionales, pero como las coordenadas están en NaN , no serán visibles en la trama en sí:

EDICIÓN 26/10/2016: Mi respuesta original da como resultado entradas de leyenda en gris en 2016b. El código actualizado anterior funciona, pero la respuesta a continuación solo es relevante antes de 2016b:

figure t=linspace(0,10,100); plot(t,sin(t)); hold on; h = zeros(3, 1); h(1) = plot(0,0,''or'', ''visible'', ''off''); h(2) = plot(0,0,''ob'', ''visible'', ''off''); h(3) = plot(0,0,''ok'', ''visible'', ''off''); legend(h, ''red'',''blue'',''black'');

Esto representará los puntos adicionales, pero no serán visibles en la propia gráfica.

También puede usar copyobj para copiar elementos gráficos de una figura a otra si tiene muchos elementos, luego use set(x, ''visible'', ''off'') para ocultarlos antes de mostrar la leyenda, pero depende de lo que haga. La aplicación final es.

Deseo insertar una leyenda que no esté relacionada con el gráfico en absoluto:

figure; hold on; plot(0,0,''or''); plot(0,0,''ob''); plot(0,0,''ok''); leg = legend(''red'',''blue'',''black'');

Ahora deseo agregarlo a otra figura:

figure; t=linspace(0,10,100); plot(t,sin(t)); %% ADD THE LEGEND OF PLOT ABOVE


Tu pregunta es un poco confusa. Sin embargo, lo primero que pensé al leerlo fue la función de text en Matlab.

Puede utilizar la función de text para agregar texto a una figura de Matlab. Su uso es

>> text(x, y, str);

donde x e y son las coordenadas en la figura donde desea agregar el texto str . Puede usar la opción Color de text para colores y TeX para dibujar líneas o incluso _ . Me he vuelto muy creativo con gráficos usando texto.

Aquí hay un ejemplo rápido y sucio de emular una legend con text

x = 0:pi/20:2*pi; y = sin(x); plot(x,y) axis tight legend(''sin(x)''); text(5.7, 0.75, ''sin(x)''); text(5.1, 0.78, ''_____'', ''Color'', ''blue'');

que produce

Para este caso específico, puede usar el comando específico (anotado por @ Hoki en los comentarios).

ht = text(5, 0.5, {''{/color{red} o } Red'', ''{/color{blue} o } Blue'', ''{/color{black} o } Black''}, ''EdgeColor'', ''k'');

para producir

al recuperar el identificador del objeto de text , resulta trivial copiarlo en una nueva figura, copyobj(ht, newfig) . [ 1 ]