MATLAB改变ylabel文字方向以及截边

一、改变ylabel文字方向。

MATLAB中ylabel的文字方向默认是竖向的,可以使用以下代码来改变方向。

y = ylabel('Amp/V');
set(y,'Rotation',0);

需要更加灵活的话,可以使用text来实现这个功能。代码如下:

clear;clc;close all;
f = 10;           %频率
T=1;              %观测时间
fs=20*f;          %采样频率
t=0:1/fs:T;       %离散时间t
y=sin(2*pi*f*t);  %正弦信号

figure
ylabel_pos = -0.05;
subplot(2,1,1);plot(t,y);text(ylabel_pos,0,'a');
subplot(2,1,2);plot(t,y);text(ylabel_pos,0,'b');
xlabel('Time/s');
set(gcf,'position',[1 1 1200 800])
print -djpeg -r300 test.jpg

修改ylabel_pos的大小,就可以移动文字的水平位置,该位置要根据图的横坐标尺度来改,这里设置的是-0.05对应下图中蓝圈的位置,而0.1则是红圈位置,这个需要根据自己的图来调整的。

MATLAB改变ylabel文字方向以及截边_第1张图片

二、截边。

上面保存的图片四周有白边,截掉再放入Word中会好看一些。代码如下:

clear;clc;close all;
x0=300;y0=120;x1=3200;y1=2300;
imgPath = pwd        % 图像路径
imgDir = dir([imgPath,'\*.jpg']); % 遍历所有jpg格式文件
for i = 1:length(imgDir)          % 遍历结构体就可以一一处理图片了
    picOld = imread([imgPath '\' imgDir(i).name]); %读取每张图片
    picNew = imcrop(picOld,[x0 y0 x1 y1]);
    figure;
    imshow(picOld);title('picOld');
    figure
    imshow(picNew);title('picNew');
%    imwrite(picNew,[imgPath '\' imgDir(i).name]); % 直接覆盖原图
end

x0,y0为图片左上角的坐标,x1,y1为图片的宽高,imgPath为图像路径,要根据自己的需求来改。效果如下:

MATLAB改变ylabel文字方向以及截边_第2张图片

MATLAB改变ylabel文字方向以及截边_第3张图片

确认图片没问题,再把下面这行

%    imwrite(picNew,[imgPath '\' imgDir(i).name]); % 直接覆盖原图

最前面的%删掉,可以覆盖原图。

这个代码会将当前目录下的所有.jpg图片都截边,使用时请注意统一图片尺寸。

 

你可能感兴趣的:(MATLAB)