2014-10-09 64 views
8

Desidero creare un grafico MATLAB con le etichette di graduazione ma nessun segno di spunta sull'asse x, ma con segni di graduazione sull'asse y. Come posso fare questo?MATLAB rimuove le tacche su un asse mantenendo le etichette

non posso usare

set(gca,'XTick',[]) 

perché questo permetterebbe di eliminare le etichette delle tacche. Non riesco neanche a utilizzare

set(gca,'TickLength',[0 0]) 

perché ciò rimuoverebbe i segni di graduazione sull'asse y.

+0

Se stai facendo questo per ottenere un'immagine eps (o una grafica vettoriale simile destinata alla pubblicazione), ti suggerisco di usare matlab2tikz e poi pgfplot in latex per creare un eps. (È così che lo faccio di solito) – vindarmagnus

risposta

2

È necessario utilizzare più assi per ottenere questo effetto poiché MATLAB non fornisce proprietà TickLength separate per gli assi X e Y.

Esempio:

x=linspace(0,4*pi); 
y=sin(x); 
ax=plotyy(x,y,0,0); 
set(ax(1),'XTick',[]); 
set(ax(1),'YColor',get(ax(1),'XColor')) 
set(ax(2),'TickLength',[0 0]); 
set(ax(2),'YTick',[]); 

Questo è un po 'hacky, ma funziona utilizzando l'asse y extra fornito nella funzione plotyy() per mantenere le etichette di asse x con lunghezza 0 zecca, pur mostrando la y-tick dall'asse y originale.

1

A partire da MATLAB 2015b è possibile scrivere:

ax.XAxis.TickLength = [0,0]; 

e diminuire a zero solo l'asse X di lunghezza tick.

Problemi correlati