2013-03-21 12 views
15

Nella figura Matlab, vorrei rimuovere i segni di graduazione solo dagli assi superiore e destro mantenendo la casella di grafico su.matlab rimuove solo i segni di spunta superiore e destro con casella di partenza su

So che se cancello la trama, le zecche in alto e a destra vanno via. Ma questo non è quello che voglio. In altre parole, voglio mantenere le zecche solo in basso e a sinistra e, allo stesso tempo, voglio mantenere la trama.

+2

Questa una di quelle cose che semplicemente non si può fare bene. Devi ricorrere all'inganno. Se si sta cercando di ottenere due assi su l'un l'altro con legata asse x e y due assi separati da entrambi i lati, l'approccio più semplice è quello di impostare entrambi gli assi a 'scatola off'. Quindi sposta l'x-ax dei secondi assi verso l'alto, togli le etichette tick e axis e chiuderà piacevolmente l'immagine. –

+0

Ha funzionato. Grazie! Non ho potuto modificare bene il codice qui, ma ho inserito il codice qui sotto. figura lw = 2; x = 0: 5: 10; plot (x, x) a1 = gca; set (a1, 'box', 'off', 'tickdir', 'out', 'xticklabel', {}, 'yticklabel', {}, ... 'linewidth', lw, 'Xtick', [ 0: 5: 10], 'Ytick', [0: 5: 10]) quadrato asse a2 = copyobj (a1, GCF); set (a2, 'color', 'none', 'xaxislocation', 'top', 'yaxislocation', 'right', 'xtick', [], 'ytick', []) –

risposta

9

mia soluzione simile a @j_kubik proposizione:

plot(1:10) 
% get handle to current axes 
a = gca; 
% set box property to off and remove background color 
set(a,'box','off','color','none') 
% create new, empty axes with box but without ticks 
b = axes('Position',get(a,'Position'),'box','on','xtick',[],'ytick',[]); 
% set original axes as active 
axes(a) 
% link axes in case of zooming 
linkaxes([a b]) 
+0

Non sapevo di linkaxes. È un miglioramento Grazie!! Aggiornamento –

+0

: per gli utenti di Matlab 2014 e successivi, sostituire 'linkaxes' con' linkprop' –

+0

@CarlWitthoft Penso che 'linkaxes' sia ancora valido nel 2014+. Chiamare 'linkprop ([a b])' causerà un errore – Delyle

1

È possibile utilizzare box off per rimuovere i segni di graduazione e quindi richiamare la casella utilizzando il grafico. Per esempio:

figure 
hold on 
box off 
plot(1:10) 
plot([1,10],[10, 10],'k') 
plot([10,10],[1,10],'k') 
+0

Grazie per il suggerimento. Ci ho provato. Ma, non funziona così bene come vorrei. Quando si imposta il linewidth spessa, dire 3, allora le linee tracciate sulla ea destra (quelle disegnate con trama) appaiono più sottile di assi (linee con sinistra e in basso), anche se uso lo stesso spessore della linea per la casella disegnato con trama e asce. –

Problemi correlati