Matlab操作1: 用tight_subplot函数绘制组图(可直接做论文用图)

matlab处理数据,生成图形,是日常操作。
绘图的常用函数有plot,subplot等。其中subplot可以很方便的将多个图形绘制到一起。
如下面示例。

close all
i = 1:20;
subplot(2,2,1);
plot(i,rand(1,20));
subplot(2,2,2);
plot(i(1:5),rand(1,5));
subplot(2,2,3);
plot(i(1:15),rand(1,15));
subplot(2,2,4);
plot(i(1:10),rand(1,10));

在这里插入图片描述
图形之间的间隔比较大,调整比较复杂。在网上搜了一个方法,可以生成比较美观的组图,
函数tight_subplot(Nh, Nw, gap, marg_h, marg_w),控制图像的边界(margin)和图形的间距(gap)。
参考链接
https://www.mathworks.com/matlabcentral/fileexchange/27991-tight_subplot-nh-nw-gap-marg_h-marg_w
https://blog.csdn.net/irober/article/details/107447574,函数tight_subplot的具体代码请参考这个博客,代码复制可用。

tight_subplot(Nh, Nw, gap, marg_h, marg_w)
Nh,表示是图排成m行
Nw,表示图排成n列
gap, 图形之间的间距
marg_h,图形到figure的边界,高度方向
marg_w,图形到figure的边界,宽度方向
在这里插入图片描述
示例演示tight_subplot函数调用,并展示结果。F0004CH1.csv等4个文件是数据文件,你可以选用其他的数据文件代替。

close all;
ha = tight_subplot(2,2,[.08 .08],[.1 .05],[.07 .04]);
% CH1通道
a1=xlsread('F0004CH1.csv');
a1 = a1(:,4);
axes(ha(1)); 
plot(a1(1:500),'k');
% 调整坐标轴刻度字号大小
set(gca,'fontsize',8);%'linewidth',4,,'fontname','Times'
% x轴坐标轴标注
pos=axis;%取得当前坐标轴的范围,即[xmin xmax ymin ymax]
xlabel('采样点','position',[pos(2)/2 1.3*pos(3)], 'FontSize',9);
ylabel('峰值电压','position',[-0.06*(pos(2)-abs(pos(1))) (pos(4)-abs(pos(3)))/2], 'FontSize',9);
box off;

% CH2通道
a2=xlsread('F0004CH2.csv');
a2 = a2(:,4);
axes(ha(2)); 
plot(a2(1:500),'k');
pos=axis;%取得当前坐标轴的范围,即[xmin xmax ymin ymax]
xlabel('采样点','position',[pos(2)/2 1.25*pos(3)], 'FontSize',9);
ylabel('峰值电压','position',[-0.06*(pos(2)-abs(pos(1))) (pos(4)-abs(pos(3)))/2], 'FontSize',9);
box off;

% CH3通道
a3=xlsread('F0004CH3.csv');
a3 = a3(:,4);
axes(ha(3)); 
plot(a3(1:500),'k');
% x轴坐标轴标注
pos=axis;%取得当前坐标轴的范围,即[xmin xmax ymin ymax]
xlabel('采样点','position',[pos(2)/2 1.25*pos(3)], 'FontSize',9);
ylabel('峰值电压','position',[-0.06*(pos(2)-abs(pos(1))) (pos(4)-abs(pos(3)))/2], 'FontSize',9);
box off;


% CH4通道
a4=xlsread('F0004CH4.csv');
a4 = a4(:,4);
axes(ha(4)); 
plot(a4(1:250),'k');
% x轴坐标轴标注
pos=axis;%取得当前坐标轴的范围,即[xmin xmax ymin ymax]
xlabel('采样点','position',[pos(2)/2 1.25*pos(3)], 'FontSize',9);
ylabel('峰值电压','position',[-0.06*(pos(2)-abs(pos(1))) (pos(4)-abs(pos(3)))/2], 'FontSize',9);
box off;

运行结果
在这里插入图片描述
很漂亮。可以直接做论文用图。

  • 3
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值