在matlab中更改ticklabel和axes之间的空格(对于ticklabel和ylabel或xlabel,相同)

时间:2017-07-13 18:23:13

标签: matlab plot matlab-figure

如何更改ticklabel和轴之间的空间(s2),同样适用于matlab中的ticklabel和ylabel或xlabel(s1,s3)(我使用matlab 2015b)。

enter image description here

2 个答案:

答案 0 :(得分:1)

如果您阅读xlabelylabel的文档,您将看到可以指定可选的输出参数以返回Text对象,您可以使用该对象来访问和修改创建后properties of the label

这里感兴趣的是标签的'Position'属性,它是[x y z*]位置向量(z是可选的)。例如:

plot(1:10);
xl = xlabel('An X Label');
yl = ylabel('A Y Label');

生成以下内容:

before

然后我们可以调整:

xl.Position(2) = 0.15;  % Shift x label down
yl.Position(1) = 0.20;  % Shift y label left

after

据我所知,我不相信有一种简单的方法可以调整嘀嗒声。

答案 1 :(得分:0)

对于轴标签,请执行@excaza wrote。对于轴刻度标签,您可以使用text在所需的偏移中创建新的刻度标签:

x = 1:10;
y = 2*x;
plot(x,y)
ax = gca;
S2 = 2; % this is S2 from your qusetion, in your data units
% make a vector of vertical position after the offset:
offset = repmat(ax.YTick(1)-S2,1,numel(ax.XTick));
% create new lables:
text(ax.XTick,offset,ax.XTickLabel,'HorizontalAlign','center')
% remove the original ones:
ax.XTickLabel = [];

结果:

enter image description here