我编写了一个 GUI,它提供了一个不同大小的 matlab 子图,我正在寻找一种将子图压缩在一起的通用方法。Subaxis 适用于垂直间距,但不影响水平间距。
将它们挤在一起的最简单方法是什么? 它是在 for 循环中使用以下代码生成的输出图形之一的示例
subaxis (1+ceil(max(zindex)/5),5,5+i, 'Padding', 0, 'Margin', 0,'SpacingHoriz',0.0001,'SpacingVert',0.009);
我编写了一个 GUI,它提供了一个不同大小的 matlab 子图,我正在寻找一种将子图压缩在一起的通用方法。Subaxis 适用于垂直间距,但不影响水平间距。
将它们挤在一起的最简单方法是什么? 它是在 for 循环中使用以下代码生成的输出图形之一的示例
subaxis (1+ceil(max(zindex)/5),5,5+i, 'Padding', 0, 'Margin', 0,'SpacingHoriz',0.0001,'SpacingVert',0.009);
看起来您的图形尺寸与您拥有的地块数量有很大不同。如果您定义图形大小,则子轴效果最好,并且您应该根据您拥有的图形数量来选择纵横比。
在示例中,您有 13 x 5 的子图,但您的图形的纵横比更像是 7:13。因此,垂直图靠得很近,但有很多水平空白。
在绘图之前,请尝试定义您的图形,如:
nRows=13;
nCols=5;
PlotWidth=3; %This is your Plot width in cm.
FigW=nCols*FigWidth;
FigH=nRows*FigWidth; %Note: I'm assuming the plots are square
Figure1=figure(1);clf;
set(Figure1,'PaperUnits','centimeters',...
'PaperSize',[FigW FigH],...
'PaperPosition',[0,0,FigW,FigH],...
'Units','centimeters','Position',[1,9,FigW,FigH]);
看看你的图形间距是否更好看。一些注意事项,如果您想使用“英寸”而不是厘米,那很好。此外,我的纸图上没有任何边距(定义纸张尺寸和纸张位置对于导出很有用)。如果你想要一个利润,你可以尝试这样的事情:
Mgn=1;
set(Figure1,'PaperUnits','centimeters',...
'PaperSize',[FigW+2*Mgn FigH+2*Mgn],...
'PaperPosition',[Mgn,Mgn,FigW,FigH],...
'Units','centimeters','Position',[1,9,FigW,FigH]);
然后,您可以使用 matlab 的打印命令将其导出为您选择的格式。