对于MATLAB绘图,简单的plot(x,y)绘制二维图已足够。但是为了美观和便于批量化,需要对图形进行高级设置。正所谓命令用法一堆,不如一个例子实用。
任务目标,从excel文件中提取出数据,绘制图形,并对图形外观修饰。
% matlab绘图样例--可爱的阿笨猫原创
clear % 清除工作区变量
load plot1.mat; % 导入数据
% M =readmatrix('data.xlsx','range','C1803:AAV1803'); % 从Excel导入数据
% y1=M(:,1:361);
% y2=M(:,362:722);
% x=-180:1:180;
% plot(x,y1,x,y2)
fg=figure; %创建图窗
l1=plot(x,y1,'LineWidth',2); %设置线宽
hold on
l2=plot(x,y2,'LineWidth',2);
hold on
title('18A单元Phi=0') %设置标题
% 绘制参考线
yl1=get(gca,'Ylim'); % 获取y轴的范围
plot([-45,-45],yl1,'m--'); % 绘制x=-45的直线
hold on
plot([45,45],yl1,'m--'); % 绘制x=45的直线
hold on
plot([0,0],yl1,'m--'); % 绘制x=0的直线
legend('GainPhi','GainTheta') % 标识各条线
xlabel('theta(degree)') % x轴标题
ylabel('Gain(dB)') % y轴标题
ylim([-inf 6]) % y轴刻度范围
xticks(-180:45:180) % x轴显示刻度标识
% pbaspect([2 1.2 1]) % 可设置x,y轴横纵比
set(gcf,'position',[168,143,871,511]) %设置图窗大小
% set(gca,'Position',[.15 .15 .8 .75]); % 设置图形大小
%标记坐标点
text(0,y1(1,181),num2str(y1(1,181),'%0.2f'))
text(0,y2(1,181),num2str(y2(1,181),'%0.2f'))
text(-45,y1(1,136),num2str(y1(1,136),'%0.2f'))
text(-45,y2(1,136),num2str(y2(1,136),'%0.2f'))
text(45,y1(1,226),num2str(y1(1,226),'%0.2f'))
text(45,y2(1,226),num2str(y2(1,226),'%0.2f'))
% 图片保存
ax = gca;
exportgraphics(ax,'18.jpg','Resolution',300)
生成的图形如下所示
网友评论