在Matlab子图中移动轴标签

时间:2016-05-26 15:49:52

标签: matlab offset axis-labels subplot

下图显示了重叠的y轴标签存在的问题。

在修复尝试之前

Result before fix attempt

为了解决这个问题,我尝试了以下代码(分别为每个子图;所以h1代表子图1,h2代表子图2,依此类推)

offset = 0.5
h1 = get(gca,'YLabel');
set(h1,'Position',get(h1,'Position') - [0 0 offset])

我是否尝试0.1,0.5,0.9或更高的偏移;结果总是如下:

尝试后

Result after fix attempt

我是否错误地使用了命令,或者每个子图周围是否有框架阻止我将y标签进一步向左移动?

1 个答案:

答案 0 :(得分:3)

您正在 Z方向中应用偏移(位置矢量的第三个元素[x y z])。相反,您希望将偏移应用于位置矢量的第一个元素,以将其移位到x。

offset = 0.5
h1 = get(gca,'YLabel');
set(h1,'Position',get(h1,'Position') - [offset 0 0])

此外,偏移量与x轴的单位相同,因此您可能需要适当调整偏移量。或者,如果您只想要一定百分比的填充,则可以使用xlims计算x轴的范围并使用其中的百分比。

padPercent = 0.1;
offset = padPercent * diff(get(gca, 'xlim'));

作为一个例子

axes();
hlabel = ylabel('YLABEL');
offset = 0.075 * diff(get(gca, 'xlim'));
set(hlabel, 'Position', get(hlabel, 'Position') - [offset, 0 0])

enter image description here