具有固定高度和宽度的Matlab子图

时间:2014-06-27 17:36:48

标签: matlab matlab-figure

我有一个带有12个子图的图,以6×2矩阵排列。我希望这个数字适合A4纸,这样我以后就可以将它包含在相应的LaTex文档中。最后,它应该与Fiscal news and macroeconomic volatility, page 2593中的图形类似。到目前为止,我的结果看起来像this

我有两个问题但是得到相同的结果:

  1. 子图应该都具有相同的宽度和高度。
  2. 子图的y轴的最大值和最小值应对应于图的y值,即如果图仅在负空间中,则y轴的最大值也应该在0附近。
  3. 我的代码(这是一个简化版本)到目前为止看起来像这样:

    figure
    set(gcf, 'PaperUnits', 'centimeters');
    set(gcf, 'PaperType', 'A4');
    for s=1:12
        subplot(6,2,s)
        plot((1:30),M_.endo_names(s,:),'b','LineWidth',1);
        hold on;
        plot([0,30],[0,0],'k-','LineWidth',0.2);
        hold off;
        title(deblank(M_.endo_names(s,:)));
    end 
    

    虽然我找到了回答问题1的线程,但我无法将他们的解决方案应用于我的问题。他们建议使用

    subplot('Position',[left bottom width height])
    

    从来没有像我需要的那样。

    我很高兴听到您的解决方案!谢谢

1 个答案:

答案 0 :(得分:0)

axis句柄应该会有所帮助。试试这段代码:

figure
set(gcf, 'PaperUnits', 'centimeters');
set(gcf, 'PaperType', 'A4');
for s=1:12
    subplot(6,2,s)
    plot((1:30),M_.endo_names(s,:),'b','LineWidth',1),axis([0 30 min(M_.endo_names(s,:)) max(M_.endo_names(s,:))]) 
    hold on;
    plot([0,30],[0,0],'k-','LineWidth',0.2);
    hold off;
    title(deblank(M_.endo_names(s,:)));
end 

这将为您提供y轴值的图形,范围从变量的最小值到最大值