我正在用MATLAB绘制一些数据,我想调整轴标签和轴本身之间的距离 . 但是,只需在标签的“位置”属性中添加一个位就可以使标签移出图形窗口 . 是否有“保证金” property 或类似的东西?
在上图中,我想增加数字和标签“Time(s)”之间的距离,同时自动扩展数字大小,使标签不会移出界限 .
这就是我设置图形/轴的方式 .
figure;
set(gca, ...
'Box' , 'off' , ...
'LooseInset' , get(gca, 'TightInset') * 1.5 , ...
'TickDir' , 'in' , ...
'XMinorTick' , 'off' , ...
'YMinorTick' , 'off' , ...
'TickLength' , [.02 .02] , ...
'LineWidth' , 1 , ...
'XGrid' , 'off' , ...
'YGrid' , 'off' , ...
'FontSize' , 18 );
3 回答
我知道这已经得到了回答,但这在某种程度上是一种更简单的方式:
我已经包含了暂停命令,因为我的系统会以某种奇怪的方式超越自己 .
/尼尔斯
您可以通过调整轴的位置和xlabel来实现此目的 . 我还建议使用“标准化”单位,这样您的定位就不依赖于数据范围 . 这是一个例子:
我写了一个应该完全符合你想要的功能 . 它使轴保持完全相同的大小和位置,向下移动x标签并将图形尺寸增大到足以显示标签:
在这种情况下,
offset
应该是像素的绝对偏移量 . 如果你想要相对偏移,我认为这个函数很容易被重写 .hFig
是图形句柄,hAxes
轴处理 .编辑:在调用函数之前,使用
hFig = figure;
创建图形,使用hAxes = axes;
创建图形(然后像在问题中一样设置轴:set(hAxes,...)
) .EDIT2:添加
hAxes
和XLabel
的'Units'
分别变回'normalized'和'data'的行 . 这样,在调整大小后,这个数字会保持你想要的方式 .EDIT3:修改了该功能,适用于X和Y标签 . 附加输入
ax
应为'x'
或'y'
.