zoukankan      html  css  js  c++  java
  • matlab函数tight_subplot控制图像的边界(margin),subplot的间距(gap)

    tight_subplot实现比matlab自带的subplot更紧凑的子图绘制。

    function [ha, pos] = tight_subplot(Nh, Nw, gap, marg_h, marg_w)
    % tight_subplot creates "subplot" axes with adjustable gaps and margins
    %
    % [ha, pos] = tight_subplot(Nh, Nw, gap, marg_h, marg_w)
    % ha 是坐标轴句柄,pos是每个坐标轴的原点与长宽
    % Nh,Nw 可以认为是几行几列
    % gap是子图的纵向和横向间距,gap(1)为纵向,gap(2)为横向
    % marg_h是图件与上下边缘的距离,marg_h(1)为距下边缘的距离,marg_h(2)是距上边缘的距离
    % marg_w 是图件与左右边缘的距离,marg_w(1)为距左边缘的距离,marg_w(2)是距右边缘的距离。
    
    %   in:  Nh      number of axes in hight (vertical direction)
    %        Nw      number of axes in width (horizontaldirection)
    %        gap     gaps between the axes in normalized units (0...1)
    %                   or [gap_h gap_w] for different gaps in height and width 
    %        marg_h  margins in height in normalized units (0...1)
    %                   or [lower upper] for different lower and upper margins 
    %        marg_w  margins in width in normalized units (0...1)
    %                   or [left right] for different left and right margins 
    %
    %  out:  ha     array of handles of the axes objects
    %                   starting from upper left corner, going row-wise as in
    %                   subplot
    %        pos    positions of the axes objects
    %
    %  Example: ha = tight_subplot(3,2,[.01 .03],[.1 .01],[.01 .01])
    %           for ii = 1:6; axes(ha(ii)); plot(randn(10,ii)); end
    %           set(ha(1:4),'XTickLabel',''); set(ha,'YTickLabel','')
    % Pekka Kumpulainen 21.5.2012   @tut.fi
    % Tampere University of Technology / Automation Science and Engineering
    if nargin<3; gap = .02; end
    if nargin<4 || isempty(marg_h); marg_h = .05; end
    if nargin<5; marg_w = .05; end
    if numel(gap)==1 
        gap = [gap gap];
    end
    if numel(marg_w)==1 
        marg_w = [marg_w marg_w];
    end
    if numel(marg_h)==1 
        marg_h = [marg_h marg_h];
    end
    axh = (1-sum(marg_h)-(Nh-1)*gap(1))/Nh; 
    axw = (1-sum(marg_w)-(Nw-1)*gap(2))/Nw;
    py = 1-marg_h(2)-axh; 
    % ha = zeros(Nh*Nw,1);
    ii = 0;
    for ih = 1:Nh
        px = marg_w(1);
        
        for ix = 1:Nw
            ii = ii+1;
            ha(ii) = axes('Units','normalized', ...
                'Position',[px py axw axh], ...
                'XTickLabel','', ...
                'YTickLabel','');
            px = px+axw+gap(2);
        end
        py = py-axh-gap(1);
    end
    if nargout > 1
        pos = get(ha,'Position');
    end
    ha = ha(:);
    

      

     https://blog.csdn.net/irober/article/details/107447574

     

    快去成为你想要的样子!
  • 相关阅读:
    Arm的几种工作模式
    Linux 串口驱动初始化前置定位crash log
    GPS的经纬度格式及转换
    git 常用命令
    windows 下 mongodb studio 3t 破解无限使用脚本
    从头开始 一、第一天
    十九、IDEA的pom文件手动添加依赖
    十八、{ "a", "ab", "ac", "abc", "de", "bc", "e" }不使用Arrays.sort()进行排序
    十七、Java中数组常见的几种排序方法!
    十六、IDEA创建一个maven工程
  • 原文地址:https://www.cnblogs.com/jiangkejie/p/15191933.html
Copyright © 2011-2022 走看看