概述
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 三维图的去白边所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复