2013-09-01 10 views
8

C'è un modo per avere una nuova linea in un'etichetta di spunta dell'asse in Matlab per produrre un'etichetta di graduazione multilinea?Nuova riga nelle etichette di graduazione degli assi in Matlab

I due suggerimenti da here per altri elementi di testo non sembrano funzionare:

set(gca,'xticklabel',{{'line1','line2'}}) 

fallisce, e

set(gca,'xticklabel',{['line1' 10 'line2']}) 

o

set(gca,'xticklabel',{['line1' 13 'line2']}) 

ignorano il ritorno a capo o carrello ritorno. Qualche idea?

risposta

4

Penso che non sia possibile avere multiline sulle etichette tick.

Tuttavia c'è un workaround

6

Non sono sicuro di quanto tempo è stato in giro, ma almeno in R2015b oggetti assi hanno una 'TickLabelInterpreter' property, che può essere specificato per impostare il tipo etichette delle tacche sono interpretati. Se si sceglie un interprete LaTeX, è possibile avere ticklabels multilinea abbastanza facilmente avvolgendoli in un ambiente tabulare.

Esempio:

figure; 
plot(rand(10,1)); 
%// Tick label with arbitrary number of lines in tabular environment 
xtl = '\begin{tabular}{c} line 1 \\ line 2 \\ line 3\\ line 4\end{tabular}'; 
%// use the tick label at location 5 on the x axis 
set(gca,'xtick', 5, 'XTickLabel', xtl, 'TickLabelInterpreter', 'latex'); 

uscita:

Multiline tick label

Naturalmente, lo svantaggio è che è necessario utilizzare l'interprete LaTeX che cambia un po 'l'aspetto della figura. Ma credo che alcune persone (come me) preferiscano in realtà il modo in cui appaiono le annotazioni delle figure interpretate da LaTeX! Come bonus aggiuntivo, puoi usare qualsiasi altra marcatura LaTeX che desideri (equazioni, ecc.) Nelle etichette.

1

Suggerisco di utilizzare fix_xticklabels() di Mikhail Erofeev. È possibile eseguire il pad delle etichette con il carattere dello spazio, ad esempio "" per regolare l'output.

Problemi correlati