有没有办法在Matlab的轴刻度标签中创建一个新行来生成多行刻度标签?
here对其他文字元素的两条建议似乎不起作用:
set(gca,'xticklabel',{{'line1','line2'}})
失败了,
set(gca,'xticklabel',{['line1' 10 'line2']})
或
set(gca,'xticklabel',{['line1' 13 'line2']})
忽略换行符或回车符。有什么想法吗?
答案 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');
输出:
当然,这里的缺点是您需要使用LaTeX解释器,它会稍微改变图形的外观。但我相信有些人(比如我)实际上更喜欢LaTeX解释图形注释的样子!作为额外的奖励,您可以在标签中使用您想要的任何其他LaTeX标记(方程式等)。
答案 1 :(得分:4)
我认为不可能在刻度标签上设置多行。
然而,workaround
答案 2 :(得分:1)
我建议你使用Mikhail Erofeev的fix_xticklabels()。您可以使用空格字符填充刻度标签,即“”以调整输出。