2012-02-06 15 views
8

Matlab sta visualizzando un bordo nero attorno a un grafico e vorrei rimuoverlo. Penso che dovrei usare qualcosa di simile:Rimuovere il bordo attorno al grafico di Matlab

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

Ma io non sono sicuro di quello PropertyName o PropertyValue dovrebbero essere usati ...

Edit:

Ho provato tutti i suggerimenti, tra cui:

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

La figura ha ancora un boarder bianco e si presenta così:

enter image description here

Modifica 2: Questo è un pacchetto semplificato che riproduce la scatola nera. Esegui lo script chiamato "runPlot". Eccolo: http://dl.dropbox.com/u/8058705/plotTest.zip Non riesco a capire perché la scatola sia ancora visibile. Questo potrebbe essere dovuto alla linea in "plotTEC.m"

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

@Pursuit: Se uso "del browser complotto" ottengo un errore di ricorsiva .... non ho familiarità con il pacchetto tracciato MATLAB ma questo sembra strano. Qualcun altro ha questo errore? Ancora una volta, grazie ragazzi per i vostri consigli!

Qualcuno ha altri suggerimenti?

Grazie in anticipo!

+0

Penso che avrete bisogno di indagare manualmente la cifra per determinare dove le linee sono in fase di elaborazione. Vedere la risposta modificata sotto per i dettagli. – Pursuit

risposta

14

Si vuole sperimentare le proprietà dell'asse. Alcune proprietà di interesse.

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 

per una trama completamente spoglio, utilizzare:

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

Per impostare lo sfondo cifra di bianco così

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

A seconda del problema esatto, è possibile provare la 'scatola 'proprietà, per vedere come colpisce i tuoi lotti

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

Se si desidera disattivare le linee di stampa attuali ma mantenere le etichette di stampa, non sono a conoscenza di una soluzione semplice. Penso che avrei bisogno di rimuovere gli assi come descritto sopra, e quindi aggiungere manualmente le etichette usando la funzione text.


Edit: Come ho appena saputo da questa domanda, Plot Overlay MATLAB si può anche provare

axis off 
axis on 

che credo sia equivalente a

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

Edit 2:

Se non altro funziona, attiva il "browser di trama" nella tua figura. Usa "vista" -> "browser di trama". Dal pannello del browser della trama, deseleziona ciascun oggetto finché non indovina quale oggetto sta disegnando le linee che devi rimuovere.

Poi doppio click sull'oggetto incriminato per aprire il pannello "editor di proprietà", e molto probabilmente cliccare "Altre proprietà" per visualizzare tutte le possibili proprietà di tale oggetto. Da quella vista è possibile (si spera) capire quale oggetto stia disegnando le linee offensive.

Dopo aver capito l'oggetto e la proprietà di modificare, probabilmente si può capire dove nel codice che oggetto viene creato, e impostare la proprietà a livello di codice.

+0

Fantastico! Grazie. Sai se c'è un elenco di proprietà delle figure MATLAB da qualche parte? – GPSmaster

+1

@ GPSmaster: è sempre possibile visualizzare le proprietà di un oggetto utilizzando il comando GET, ad es. 'get (gcf)' o 'get (gca)'. –

+0

Molto interessante. Grazie ancora! – GPSmaster

6

Prova:

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

vedi "Modifica 2" nel mio post originale. Grazie mille per il vostro aiuto! – GPSmaster

0

set (GCA, 'Visible', 'off');

3

soluzione per rimuovere sfondo 'grigia' in 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; 

Questo dovrebbe salvare l'immagine con stesse dimensioni di quello originale, utilizzando imagesc. Cheers!

+0

Funziona su trama, imshow, ecc – dbs

+1

salvare l'immagine con una delle icone 'Salva' o File -> 'Salva con nome'. La stampa Matlab, savea, ecc. Si tradurrà in una diversa dimensione dell'immagine. – dbs

+0

Questo è vero e fastidioso, ma c'è 'export_fig' ([trovato qui] (http://www.mathworks.com/matlabcentral/fileexchange/23629-export-fig)), che fa un ottimo lavoro di salvare trame in generale. Bello avere qualcosa da salvare a livello di programmazione. – whlteXbread