【问题标题】:How to reduce the borders around subplots in matlab AND subaxis doesn't work如何减少matlab和子轴中子图周围的边界不起作用
【发布时间】:2012-11-08 19:28:01
【问题描述】:

我已经编写了一个 GUI,它提供了一个不同大小的 matlab 子图,我正在寻找一种将子图压缩在一起的通用方法。子轴适用于垂直间距,但不影响水平间距。

将它们挤在一起的最简单方法是什么? An example of one of the output figures 它是在 for 循环中使用以下代码生成的

 subaxis (1+ceil(max(zindex)/5),5,5+i, 'Padding', 0, 'Margin', 0,'SpacingHoriz',0.0001,'SpacingVert',0.009);

【问题讨论】:

  • 你能说明你如何调用子轴吗?对于水平和垂直“挤压”,它应该以类似的方式工作。
  • @DennisJaheruddin 在循环子轴(1+ceil(max(zindex)/5),5,5+i, 'Padding', 0, 'Margin', 0,'SpacingHoriz', 0.0001 ,'SpacingVert',0.009);%绘图形状

标签: matlab matlab-figure


【解决方案1】:

看起来您的图形尺寸与您拥有的地块数量不同。如果您定义图形大小,则子轴效果最好,并且您应该根据您拥有的图形数量来选择纵横比。

在示例中,您有 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 的 print 命令导出为您选择的格式。

【讨论】:

    猜你喜欢
    • 2011-10-04
    • 2012-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-03
    • 2011-05-23
    相关资源
    最近更新 更多