Matlab 获取XTick位置并在其附近显示文本

Matlab 获取XTick位置并在其附近显示文本,matlab,plot,matlab-figure,Matlab,Plot,Matlab Figure,我的目标:使用text命令将文本放在xtick附近,但不要通过xticklabel 示例: 假设我有以下代码 figure plot([1:10],[1:10]) set(gca, 'XTick',[3]) set(gca, 'XTickLabel',{''}) 现在,我想写一些类似的东西(这不是一个工作代码) 我知道我可以将文本设置为XTickLabel格式,但它并不能使我拥有text所允许的所有文本灵活性 如果您知道如何在xticklabel中添加乳胶,这也很有趣,但这篇文章的主题不太明确

我的目标:使用
text
命令将文本放在
xtick
附近,但不要通过
xticklabel

示例: 假设我有以下代码

figure
plot([1:10],[1:10])
set(gca, 'XTick',[3])
set(gca, 'XTickLabel',{''})
现在,我想写一些类似的东西(这不是一个工作代码)

我知道我可以将文本设置为
XTickLabel
格式,但它并不能使我拥有
text
所允许的所有文本灵活性


如果您知道如何在
xticklabel
中添加乳胶,这也很有趣,但这篇文章的主题不太明确(只是评论)。

您可以获得
xtick
属性,该属性将为您提供记号的x值。然后,您可以使用axes
ylim
属性来确定最小
y
值,该值将是它的大致
y
位置。然后,您可以根据需要对这些值应用填充,并使用
text
在任何位置显示文本

ax = axes();

% Get the upper and lower y limits
ylims = get(ax, 'ylim');

% Get the x positions of the tick marks
xticks = get(ax, 'xtick');

% For each tick we're going to use padding between -10% of the ylimits to 10%
padding = linspace(-0.1, 0.1, numel(xticks));

for k = 1:numel(padding)
    % Compute the y value based upon the desired padding and the lower y limit
    yvalue = ylims(1) - diff(ylims) * padding(k);

    % Display the text
    text(xticks(k), yvalue, sprintf('Label %d', k), 'HorizontalAlignment', 'center');
    hold on
end

也就是说,从R2015a开始,您可以将LaTeX直接放在xtick标签中,并使用
轴的属性来指定要使用LaTeX解释器

axes('Xtick', [0 0.5 1], ...
     'XTickLabel', {'10\circ', 'x^{1}', 'Y_2'}, ...
     'TickLabelInterpreter', 'latex')

您可以使用未记录的功能,例如(R2015b):
ax.XRuler.MajorTickChild.VertexData,获得蜱虫的确切Y位置。这将返回一个2*NTicks x 3矩阵,详细说明x、Y和Z中每个记号的开始和结束位置。
axes('Xtick', [0 0.5 1], ...
     'XTickLabel', {'10\circ', 'x^{1}', 'Y_2'}, ...
     'TickLabelInterpreter', 'latex')