MATLAB水平轴标签使用TEX解释器

3

我遵循了这个帖子来为我的图表创建X轴标签。然而,我希望Matlab将标签视为tex代码。换句话说,当我有K_1时,我希望Matlab将其显示为下标为1的K。我该怎么做?

2个回答

3
这是一个有点丑陋的解决方案,但仍然可以……
您可以手动删除标记并添加文本元素:
x = 1:5;
y = x.*x;
plot(x, y, 'b')
set(gca, 'XTick',[]);
text(1,-0.8,'A_1');
text(2,-0.8,'B_1');
text(3,-0.8,'C_1');
text(4,-0.8,'D_1');
text(5,-0.8,'E_1');

enter image description here


+1,这实际上是Matlab支持推荐的方法(http://www.mathworks.se/support/solutions/en/data/1-5HAF0I/),所以你无法找到更少丑陋的解决方案 ;) - angainor
@angainor,再次了解到美在观者的眼中,这很好 :) - Andrey Rubshtein

0
和Andrey一样的解决方案。你可以使用arrayfun来更轻松地输入标签:
x = 1:5;
y = x.*x;
plot(x, y);
set(gca, 'XTick',[]);
labels = {'K_1', 'K_2', 'K_3', 'K_4', 'K_5'};
arrayfun(@text, x, -1*ones(size(x)), labels);

你甚至可以使用以下代码生成任意数量的标签:

labels = strcat({'K_'},int2str((1:5)'))';

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接