10

有没有办法在 Matlab 的轴刻度标签中添加一条新线来生成多行刻度标签?

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

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

失败,并且

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

或者

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

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

4

2 回答 2

11

我不确定它已经存在了多久,但至少在 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 标记(方程式等)。

于 2015-12-07T14:19:30.167 回答
1

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

于 2017-08-17T19:00:10.230 回答