Matlab让图片充满窗口的方法整理 您所在的位置:网站首页 word怎样把图片放大到满屏 Matlab让图片充满窗口的方法整理

Matlab让图片充满窗口的方法整理

2024-06-26 15:08| 来源: 网络整理| 查看: 265

Matlab 让图片充满窗口的方法整理

在此处写一个blog,记录一下最近在写论文中遇到的一个问题以及相应的解决办法;在使用Latex撰写论文时,常常需要使插入的图片周围没有空白间隙,即如下图所示: 一张单图片充满

单张图充满整个窗口的方法

实现上图的效果的方法主要有两种,其中第一种方法操作方法为:在图片窗口选项上依次选择:文件 -> 导出设置 -> 勾选放大坐标区至充满图窗 ->应用于图窗 单张充满method1 然后就可以实现以下效果 单张充满method1效果 当然除了上面的方法手动勾选的方法,更加推荐使用添加一句代码,就能实现的方法

set(gca,'LooseInset', get(gca,'TightInset'))

当然这种方式还可以控制上下左右空白间隙的大小,例如宽度方向空白区域0.02,高度方向空白区域0.04

set(gca,'looseInset',[0 0 0.02 0.04]); 多张子图充满窗口的方法

上面所述的单张图片充满窗口的方法固然简单,但是可惜的是,这些方法在画图窗口有多张子图的时候就会失效,例如使用subplot函数,为解决这个问题,此处提供3种方法!

第一种方法

第一种方法是比较直接的方法,就是直接更改fig的参数属性,本质上就是手动拉动fig的大小,使figs充满整个图窗。操作方法:点击图窗上的小箭头 -> 选中需要更改的fig -> 左击 -> 选择属性检查器 -> 找到Position属性 -> 调整属性参数,达到想要的效果。 其中Posiition属性包含四个元素,其中前两个元素,即x和y决定fig的左下角在图窗中的位置,width表示fig的横向宽度,height表示纵向高度。

在这里插入图片描述

但是我们在科研中往往需要频繁地更改图片中的数据等等,这样每次都来这样的操作就会很繁琐!所以更加推荐下面的两种方法。

第二种方法

该方法就是在第一种方法上建立起来的,因为笔者自己习惯使用subplot函数,所以将第一种方法在常见的子图竖着排列,且只有2-3张子图的情况下,写成了函数,该函数的Matlab代码为

function [subfig_1_position_size,subfig_2_position_size,subfig_3_position_size] = my_tight_subplot(f2_1,f2_2,f2_3) % MY_TIGHT_SUBPLOT % narginchk(2,3); figs = nargin; %number of figs %% getting property of fig position and size subfig_1_position_size = get(f2_1,'Position'); subfig_2_position_size = get(f2_2,'Position'); if figs >2 subfig_3_position_size = get(f2_3,'Position'); end %% setting parameters left_gap = 0.08; right_gap = 0.02; top_gap = 0.00; bottom_gap = 0.0; figs_gap = 0.00; text_height = 0.06; %% reshaping subfig_1_position_size(1) = left_gap; subfig_2_position_size(1) = left_gap; subfig_1_position_size(3) = 1-left_gap-right_gap; subfig_2_position_size(3) = 1-left_gap-right_gap; fig_height = (1-text_height*figs*3-top_gap-bottom_gap-(figs-1)*figs_gap)/figs; subfig_1_position_size(2) = 1-text_height-fig_height-top_gap; subfig_2_position_size(2) = subfig_1_position_size(2)-figs_gap-fig_height-3*text_height; subfig_1_position_size(4) = fig_height; subfig_2_position_size(4) = fig_height; set(f2_1,'Position',subfig_1_position_size); set(f2_2,'Position',subfig_2_position_size); if figs >2 subfig_3_position_size(1) = left_gap; subfig_3_position_size(3) = 1-left_gap-right_gap; subfig_3_position_size(2) = subfig_2_position_size(2)-figs_gap-fig_height-3*text_height; subfig_3_position_size(4) = fig_height; set(f2_3,'Position',subfig_3_position_size); end end

其中需要说明的是,我将fig参数设置也放在了函数内部,当然也可以改为从外部传参,这些参数分别为

%% setting parameters left_gap = 0.02; %fig左边的空白间隔 right_gap = 0.02; %fig右边的空白间隔 top_gap = 0.02; %fig顶部的空白间隔 bottom_gap = 0.0; %fig底部的空白间隔 figs_gap = 0.1; %fig与fig之间的间隔 text_height = 0.06; %字体高度

以下是一个简单的使用例子

clc clear close all x = 0:0.1:10; y_1 = sin(x); y_2 = cos(x); y_3 = sin(x+pi); figure() f1 = subplot(3,1,1); plot(x,y_1) title('(a)') ylabel('Amplitude') xlabel('time') set(gca, 'Fontname', 'Times New Roman','FontSize',12); f2 = subplot(3,1,2); plot(x,y_2) title('(b)') ylabel('Amplitude') xlabel('time') set(gca, 'Fontname', 'Times New Roman','FontSize',12); f3 = subplot(3,1,3); plot(x,y_3) title('(c)') ylabel('Amplitude') xlabel('time') set(gca, 'Fontname', 'Times New Roman','FontSize',12); my_tight_subplo(f1,f2,f3); % % set(gca,'LooseInset', get(gca,'TightInset')) % set(gca,'looseInset',[0 0 0.02 0.04]);

可以看出使用方法超级简单,并且我还是用了subplot函数,最终的效果图 在这里插入图片描述

第三种方法

第三种方法就是的tight_subplot函数,具体使用方法和相关函数此处就不再赘述,请参考这篇博客 tight_subplot



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有