在Matlab中,有没有一种方法可以在轴刻度标签中换行,以产生多行刻度标签?
这里提供的两个其他文本元素的建议似乎不起作用:
set(gca,'xticklabel',{{'line1','line2'}})
失败了,而且
set(gca,'xticklabel',{['line1' 10 'line2']})
或者set(gca,'xticklabel',{['line1' 13 'line2']})
忽略换行符或回车符。有什么想法吗?
我不确定这个功能存在多久了,但至少在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');
输出:
当然,这里的缺点是您需要使用LaTeX解释器,这会在一定程度上改变图形的外观。但我相信有些人(比如我)实际上更喜欢LaTeX解释的图形注释的外观呈现方式!作为额外的奖励,您可以在标签中使用任何其他LaTeX标记(方程等)。
\n
来实现换行。 - Bowi