我正在编写一个脚本来调整提供给我的任何图形的大小,我想获得子图的行和列。例如,如果有人给我一个由以下人员创建的图形:
hfig = figure;
haxes = subplot(3,4,1);
...
图形或轴控柄中是否有一个属性可以告诉我图形有3行4列?我需要调整每个轴的大小,并且了解行和列很重要,因此我知道如何调整它们的大小。
不,没有这样的属性。轴对象只有'Position'
属性。子图功能执行的是计算正确的轴位置。
您可以使用ax = findobj(gcf,'type','axes');
找到图形上的所有轴。然后使用get(ax,'position')
获取位置并分析它们的行数和列数。
例如:
pos = cell2mat(get(ax,'position'));
nrows = numel(unique(pos(:,2))); % the same Y position means the same row
ncols = numel(unique(pos(:,1))); % the same X position means the same column
但是请注意,它将仅分析现有的轴。如果仅使用subplot(221)
和subplot(222)
创建了两个轴,则将获得1行,而不是2行。