我是靠谱客的博主 小巧衬衫,最近开发中收集的这篇文章主要介绍Matlab论文中用图去白边方法1 可设置gca的二维图像2 三维图的去白边,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Matlab论文中用图去白边方法

  • 1 可设置gca的二维图像
    • 1.1方法1
    • 1.2方法2
    • 1.3方法3
    • 1.4方法4
    • 1.5多图
  • 2 三维图的去白边
    • 2.1 处理meshgrid函数生成的图

1 可设置gca的二维图像

1.1方法1

set(gca,‘position’,[0 0 1 1]);

1.2方法2

set(gca,‘LooseInset’,get(gca,‘TightInset’))
去除不完全

1.3方法3

set(gca,‘looseInset’,[0 0 0 0])

1.4方法4

函数实现

function [] = RemovePlotWhiteArea(gca)
% TightInset的位置
inset_vectior = get(gca, 'TightInset');
inset_x = inset_vectior(1);
inset_y = inset_vectior(2);
inset_w = inset_vectior(3);
inset_h = inset_vectior(4);

% OuterPosition的位置
outer_vector = get(gca, 'OuterPosition');
pos_new_x = outer_vector(1) + inset_x; % 将Position的原点移到到TightInset的原点
pos_new_y = outer_vector(2) + inset_y;
pos_new_w = outer_vector(3) - inset_w - inset_x; % 重设Position的宽
pos_new_h = outer_vector(4) - inset_h - inset_y; % 重设Position的高

% 重设Position
set(gca, 'Position', [pos_new_x, pos_new_y, pos_new_w, pos_new_h]);
%摘自https://blog.csdn.net/shanchuan2012/article/details/53980288

1.5多图

多图排列,无白边

clear;clc;
 
x=1:0.001:2*pi;
y=sin(x);
 
Color=[1 0 0;0 1 0;0 0 1;1 1 0;1 0 1;0 1 1;1 1 1];
figure('color', [1, 1, 1], 'position', [0, 0, 800,400]);  % 为区分边界,将底色改为灰色
set(gcf, 'InvertHardCopy', 'off'); % 让设置的背景色有效
sub_row = 3; % 子图行数
sub_col = 3; % 子图列数
for i_row = 1 : sub_row
    for j_col = 1 : sub_col
        order = (i_row-1)*sub_col+j_col; % 子图的顺序
        subplot(sub_row, sub_col, order);
        plot(x,y,'g.');
        RemoveSubplotWhiteArea(gca, sub_row, sub_col, i_row, j_col); % 去除空白部分
    end
end
 
% 对应子函数:
function [] = RemoveSubplotWhiteArea(gca, sub_row, sub_col, current_row, current_col)
% 设置OuterPosition
sub_axes_x = current_col*1/sub_col - 1/sub_col;
sub_axes_y = 1-current_row*1/sub_row; % y是从上往下的
sub_axes_w = 1/sub_col;
sub_axes_h = 1/sub_row;
set(gca, 'OuterPosition', [sub_axes_x, sub_axes_y, sub_axes_w, sub_axes_h]); % 重设OuterPosition
 
% TightInset的位置
inset_vectior = get(gca, 'TightInset');
inset_x = inset_vectior(1);
inset_y = inset_vectior(2);
inset_w = inset_vectior(3);
inset_h = inset_vectior(4);
 
% OuterPosition的位置
outer_vector = get(gca, 'OuterPosition');
pos_new_x = outer_vector(1) + inset_x; % 将Position的原点移到到TightInset的原点
pos_new_y = outer_vector(2) + inset_y;
pos_new_w = outer_vector(3) - inset_w - inset_x; % 重设Position的宽
pos_new_h = outer_vector(4) - inset_h - inset_y; % 重设Position的高
 
% 重设Position
set(gca, 'Position', [pos_new_x, pos_new_y, pos_new_w, pos_new_h]); 
%摘自https://blog.csdn.net/u011624019/article/details/79267394

2 三维图的去白边

2.1 处理meshgrid函数生成的图

meshgrid 生成的为三维图,无法通过涉及set(gca,…)的函数实现去除或减小白边。
但,可以通过调整窗口尺寸,来调整白边大小,不能完全去除,只能减小。

pos=get(gcf,'Position'); % 获取窗口尺寸信息
pos(4)=pos(3)/2.2; %    改变窗口宽度(倍数根据长宽比自己确定)
pos(1:2)=[0 0];
set(gcf,'Position',pos)  % 更新窗口尺寸

感谢以下博主的分享。
Reference
[1]: https://blog.csdn.net/u011624019/article/details/79267394
[2]: https://blog.csdn.net/shanchuan2012/article/details/53980288

最后

以上就是小巧衬衫为你收集整理的Matlab论文中用图去白边方法1 可设置gca的二维图像2 三维图的去白边的全部内容,希望文章能够帮你解决Matlab论文中用图去白边方法1 可设置gca的二维图像2 三维图的去白边所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(32)

评论列表共有 0 条评论

立即
投稿
返回
顶部