我在代码1中将位置定义为常量(101),而在代码2中定义为十进制数(1.01)。 我正在考虑轴上的代码之间的区别'蜱。 代码1
hFig=figure('Visible', 'on', 'Units', 'inches', 'Position', [0 0 15 15]);
set(gca, 'position', [0 0 101 101]);
xlabel(gca, 'Time/s');
x = 0:0.01:1;
y = sin(x);
plot(x,y);
没有轴的输出'蜱
代码2
hFig=figure('Visible', 'on', 'Units', 'inches', 'Position', [0 0 15 15]);
set(gca, 'position', [0 0 1.01 1.01]);
xlabel(gca, 'Time/s');
x = 0:0.01:1;
y = sin(x);
plot(x,y);
轴输出'蜱
在这两种情况下,由于某种原因,没有xlabel
的输出。
这可能与轴有关。滴答声 - 问题。
更改命令的位置并未改变行为。
有斧头'在代码2的输出中打勾但在代码1的输出中没有。
为什么轴和输出之间存在这样的差异?蜱?
答案 0 :(得分:1)
这里有三个问题。
您在不明确创建gca
的情况下继续引用axes
。因此,您的xlabel
正在应用于错误的内容,因为gca
实际指的是某个其他图中的axes
。要解决此问题,请尝试类似的方法。
fig = figure();
axes('Parent', fig) % Explicitly create the axes
xlabel(gca, 'xlabel')
Position
的{{1}}属性(默认情况下)是规范化单位。这意味着所有值都在0和1之间。正如您在第二个示例中所看到的,您将位置数组的最后两个元素(宽度和高度)设置为1.01,大于1并使您绘制< em>更大比你的数字。在第一个示例中,您将宽度和高度设置为101,方式高于1,并使轴的大小比您的图大100倍。如果你仔细观察,你甚至可以看到你的轴在第一种情况下是如此之大,以至于它看起来像一条不同的曲线。此外,这就是您没有看到任何轴嘀嗒声的原因。
axes
是轴本身的位置,不包括xticks,yticks,xlabels,ylabels或title。由于您有效地使您的轴与您的图形一样大,因此您将看不到任何这些标签。如果要设置轴位置并自动考虑刻度标签等所需的空间,则需要设置Position
属性。
OuterPosition