Matlab中的轴刻度标签中的新行

dyl*_*106 9 matlab plot

有没有办法在Matlab中的轴刻度标签中创建一个新行以生成多行刻度标签?

这里针对其他文本元素的两个建议似乎不起作用:

set(gca,'xticklabel',{{'line1','line2'}}) 
Run Code Online (Sandbox Code Playgroud)

失败了

set(gca,'xticklabel',{['line1' 10 'line2']}) 
Run Code Online (Sandbox Code Playgroud)

要么

set(gca,'xticklabel',{['line1' 13 'line2']}) 
Run Code Online (Sandbox Code Playgroud)

忽略换行符或回车符.有任何想法吗?

mik*_*ola 9

我不确定它已存在多久,但至少在R2015b中,轴对象具有一个'TickLabelInterpreter'属性,可以指定该属性来设置如何解释刻度标签.如果您选择LaTeX解释器,可以通过将它们包装在表格环境中来轻松获得多行标记.

例:

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');
Run Code Online (Sandbox Code Playgroud)

输出:

多行刻度标签

当然,这里的缺点是您需要使用LaTeX解释器,这会稍微改变图形的外观.但我相信有些人(比如我)实际上更喜欢LaTeX解释图形注释的样子!作为额外的奖励,您可以在标签中使用您想要的任何其他LaTeX标记(方程式等).