2012-02-06 54 views
8

Matlab muestra un borde negro alrededor de un trazado y me gustaría eliminarlo. Creo que debería usar algo como:Quitar el borde alrededor del diagrama de Matlab

set(Figure#,'PropertyName',PropertyValue); 

Pero no estoy seguro de lo que se deben utilizar PropertyName o PropertyValue ...

Editar:

Probé todas las sugerencias que incluyen:

set(gca,'box','off'); 
set(gca,'xcolor','w','ycolor','w','xtick',[],'ytick',[]); 
axis off; 

La cifra sigue teniendo un huésped negro y se ve así:

enter image description here

Editar 2: Este es un paquete simplificado que reproduce la caja negra. Ejecute el script llamado "runPlot". Aquí está: http://dl.dropbox.com/u/8058705/plotTest.zip No puedo entender por qué la caja todavía está visible. Esto podría ser debido a la línea de "plotTEC.m"

axis([-.65 .6 .25 1.32]) % hardwiring axis length since the coastline runs off of the plot

@Pursuit: Si uso "del navegador trama" me sale un error recursivo .... No estoy familiarizado con el paquete de trazado de MATLAB pero esto parece extraño. ¿Alguien más tiene este error? Nuevamente, ¡gracias por su consejo!

¿Alguien tiene alguna otra sugerencia?

¡Gracias de antemano!

+0

Creo que tendrá que investigar manualmente la figura para determinar dónde se dibujan las líneas. Vea la respuesta editada a continuación para más detalles. – Pursuit

Respuesta

14

usted quiere experimentar con las propiedades del eje. Algunas propiedades de interés.

xcolor %The color of the x-axis line and the x axis labels 
ycolor % 
box  %'on', or 'off' indicating if one or both sides of a plot should have lines 
xtick %Where to place the labels 
ytick 

Para una parcela completamente desnuda, utilice:

figure 
set(gca,'xcolor','w','ycolor','w','xtick',[],'ytick',[]) 

Para establecer la figura de fondo en blanco, así

set(gcf,'color','w') 

Dependiendo de su problema exacto, se puede tratar la 'caja 'propiedad, para ver cómo afecta a sus parcelas

set(gca,'box','on') 
set(gca,'box','off') 

Si desea desactivar las líneas de las trazas reales, pero mantener las etiquetas de la parcela, entonces no tengo conocimiento de una solución simple. Creo que necesitaría eliminar los ejes como se describe arriba, y luego agregar etiquetas manualmente usando la función text.


Edit: Como acabo de aprender a partir de esta pregunta, Plot Overlay MATLAB también puedes probar

axis off 
axis on 

que creo que es equivalente a

set(gca,'visible','off') 
set(gca,'visible','on') 

Edición 2:

Si nada más funciona, activa el "navegador de gráficos" en tu figura. Use "ver" -> "trazar navegador". Desde el panel del navegador de gráficos, desmarque cada objeto hasta que descubra qué objeto dibuja las líneas que debe eliminar.

Luego haga doble clic en el objeto ofensivo para abrir el panel "editor de propiedades", y probablemente haga clic en "Más propiedades" para ver todas las propiedades posibles de ese objeto. Desde esa perspectiva, puedes (con suerte) descubrir qué objeto dibuja las líneas ofensivas.

Después de haber descubierto el objeto y la propiedad para editar, probablemente pueda averiguar en qué parte del código se crea ese objeto y establecer la propiedad mediante programación.

+0

¡Impresionante! Gracias. ¿Sabes si hay una lista de propiedades de figuras de Matlab en algún lugar? – GPSmaster

+1

@GPSmaster - Siempre puede ver las propiedades de un objeto usando el comando GET, p. 'get (gcf)' o 'get (gca)'. –

+0

Muy bueno. ¡Gracias de nuevo! – GPSmaster

6

Probar:

 
set(gca, 'Box', 'off'); 
+0

ver "Editar 2" en mi publicación original. ¡Muchas gracias por tu ayuda! – GPSmaster

0

conjunto (gca, 'Visible', 'apagado');

3

solución para eliminar el fondo 'gris' en imagesc

I = imread('imgname.jpg'); 
[rows columns] = size(I); 
posX = 100; posY = 100; %you can set any value for posX and posY - try to keep it on screen 
f = figure (1); 
imagesc(I); 
set(gcf,'Position',[posX posY columns rows]); 
set(gca,'units','pixels'); 
set(gca,'units','normalized','position',[0 0 1 1]); 
axis off; 
axis tight; 

Esto se debe guardar la imagen con el mismo tamaño que el del original, usando imagesc. ¡Salud!

+0

Funciona en trama, imshow, etc. – dbs

+1

Guarde la imagen con el icono 'Guardar' o Archivo -> 'Guardar como'. Matlab print, saveas, etc. dará como resultado un tamaño de imagen diferente. – dbs

+0

Eso es cierto y molesto, pero hay 'export_fig' ([se encuentra aquí] (http://www.mathworks.com/matlabcentral/fileexchange/23629-export-fig)) que hace un buen trabajo al guardar tramas en general. Es bueno tener algo para guardar tramas programáticamente. – whlteXbread

Cuestiones relacionadas