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

时间:2013-09-01 15:43:38

标签: matlab plot

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

here对其他文字元素的两条建议似乎不起作用:

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

失败了,

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

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

忽略换行符或回车符。有什么想法吗?

3 个答案:

答案 0 :(得分:8)

我不确定它到底有多长时间,但至少在R2015b中,轴对象有一个'TickLabelInterpreter' property,可以指定它来设置刻度标签的解释方式。如果您选择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');

输出:

Multiline tick label

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

答案 1 :(得分:4)

我认为不可能在刻度标签上设置多行。

然而,workaround

答案 2 :(得分:1)

我建议你使用Mikhail Erofeev的fix_xticklabels()。您可以使用空格字符填充刻度标签,即“”以调整输出。