有没有办法在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)
忽略换行符或回车符.有任何想法吗?
我不确定它已存在多久,但至少在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标记(方程式等).