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值。然后,您可以使用axesylim
属性来确定最小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')