窗口的大小控制

快捷键

首先要了解的是Matlab是面向对象的。最高等级的对象是screen,它定义了figure可以用的最大szie。screen下面是figure。figue就是你画图的时候跳出来的那个新的对话窗口。如果figure变化,screen是不会跟着变化的。但screen变化的话,figure就要跟着变化了。figure下面是axes。axes是那个窗口里面你要画的东西。axes的大小和位置取决于figure,如果你放大缩小figure的大小的话,里面的图线也会跟着变化的。

  • 设置axis在figture中的边距
    • set (gca,'position',[0.1,0.1,0.8,0.8] );%设置坐标轴在figture中的边距,四个参数分别表示的是左边界,下边界,高度,宽度。
  • 设置figture窗口的形状(默认为近似正方形)
    • set(gcf,'unit','normalized','position',[0.2,0.2,0.64,0.32]); %其在屏幕上的显示,四个参数分别表示的是左边界,下边界,高度,宽度。
    • 例子:
      • figure
        set(gcf,'unit','normalized','position',[0.1,0.1,0.8,0.5]);%figture位置,最下角,宽高
        set (gca,'position',[0.1,0.1,0.8,0.8] );%axis位置,最下角,宽高
        x=1:0.1:10;
        y=sin(x);
        plot(x,y)
  • 无视屏幕尺寸,输出在word中适用的尺寸
    • 在word中使用的时候,直接设置输出的图形尺寸为7cm,也就是word半个页面的大小。这样可以保证字体线条不失真
      • 例子
        -set(gcf,'Position',[100 100 260 220]);
        set(gca,'Position',[.13 .17 .80 .74]);
        figure_FontSize=8;
        set(get(gca,'XLabel'),'FontSize',figure_FontSize,'Vertical','top');
        set(get(gca,'YLabel'),'FontSize',figure_FontSize,'Vertical','middle');
        set(findobj('FontSize',10),'FontSize',figure_FontSize);
        set(findobj(get(gca,'Children'),'LineWidth',0.5),'LineWidth',2);

        % set(gcf,’Position’,[100 100 260 220]);这句是设置绘图的大小,不需要到word里再调整大小。我给的参数,图的大小是7cm
        %set(gca,’Position’,[.13 .17 .80 .74]);这句是设置xy轴在图片中占的比例,可能需要自己微调。
        %figure_FontSize=8;
        %set(get(gca,’XLabel’),’FontSize’,figure_FontSize,’Vertical’,’top’);
        %set(get(gca,’YLabel’),’FontSize’,figure_FontSize,’Vertical’,’middle’);
        %set(findobj(‘FontSize’,10),’FontSize’,figure_FontSize);这4句是将字体大小改为8号字,在小图里很清晰
        %set(findobj(get(gca,’Children’),’LineWidth’,0.5),’LineWidth’,2);这句是将线宽改为2
%%%%%%%%%%%%%%%%%%%%%% plot your figure before
%%%%%%%%%%%%%%%%%%%%%% figure resize
close all;
figure
x=0:0.1:10; 
y=sin(x);
plot(x,y,'b-')
legend('sin');
hold on;
z = cos(x);
plot(x,z,'r-')
legend('cos');

% set(gcf,'Position',[500 500 260 220]);%左下角位置,宽高,这里的260正好是7cm,适合半个word页面
% set(gca,'Position',[.13 .17 .80 .74]); %同样应用是在画图到word

set(gcf,'unit','normalized','position',[0.1,0.25,0.8,0.5]); %采用相对值设置,相对屏幕
set (gca,'position',[0.1,0.1,0.8,0.8] );
figure_FontSize=8;
set(get(gca,'XLabel'),'FontSize',figure_FontSize,'Vertical','top');
set(get(gca,'YLabel'),'FontSize',figure_FontSize,'Vertical','middle');
set(findobj('FontSize',10),'FontSize',figure_FontSize);
set(findobj(get(gca,'Children'),'LineWidth',0.5),'LineWidth',1);
xlab = xlabel('x轴');
ylab = ylabel('y轴');
set(ylab,'Rotation',0);
title('图名');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%解释:
% set(gcf,'Position',[100 100 260 220]);这句是设置绘图的大小,不需要到word里再调整大小。我给的参数,图的大小是7cm
% set(gca,'Position',[.13 .17 .80 .74]);这句是设置xy轴在图片中占的比例,可能需要自己微调。
% figure_FontSize=8;
% set(get(gca,'XLabel'),'FontSize',figure_FontSize,'Vertical','top');
% set(get(gca,'YLabel'),'FontSize',figure_FontSize,'Vertical','middle');
% set(findobj('FontSize',10),'FontSize',figure_FontSize);这4句是将字体大小改为8号字,在小图里很清晰
% set(findobj(get(gca,'Children'),'LineWidth',0.5),'LineWidth',2);这句是将线宽改为2

另外还有一些常用的绘图关键词:

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐