分享一些matlab中对绘制二维平面图的操作方法,包括多图像绘制到一个图中,稍微修改图像大小等

本文详细介绍了如何在MATLAB中创建带有标题和多个坐标轴的二维平面图,包括绘制两条线的图例以及将多张图合并在一张图片中的方法。作者提供了代码示例和关键功能的解释,展示了如何调整图形尺寸和颜色。
摘要由CSDN通过智能技术生成

matlab中对绘制二维平面图的操作

概要

1.讲一下如何生成一个有标题,两个纵向坐标,1个横向坐标,绘制两条线的图
2.讲一下如何设置让多个图绘制到同一张图片中

例如下图所示:

代码与说明

clc %清理命令窗口所有输出
clear all;%清理工作空间
range_start=10;%最小数据
range_end=50;%最大数据
num_data=100;%数据数量
range_diff=range_end-range_start;%差值
A(:,1)=rand(1,num_data)range_diff+range_start;%生成在10到50的100个随机数据
amplitude=rand
5;%随机振幅
frequency=rand5;%随机频率
phase=2
pirand;%随机相位
t=linspace(0,1
pi,100);%生成时间轴
B(:,1)=amplitudesin(frequencyt+phase);%生成随机的正弦函数
C=[1.23,3.14];%写入了两个数
A_path=‘C:\Users\zxz\Desktop\matlab验证’;%预设一个地址来存放我们的图片
%以上是准备性代码,搞点数据出来画图,有兴趣的自行研究,不做详细说明

%绘图方案1:单个图像绘制
figure
yyaxis left %以左方纵坐标绘图
ylabel(‘零偏/单位:°/h’); %设置左边纵坐标
xlabel(‘时间/单位:1s’); %设置下方横坐标
plot(A(:,1),‘-’,‘Color’,‘b’) %用蓝色绘制A第一列数据
yyaxis right %以右方纵坐标绘图
ylabel(‘温度/单位:℃’); %设置右边纵坐标
plot(B(:,1),‘-’,‘Color’,‘r’) %用红色绘制A第一列数据
title(sprintf(‘指定数据1:%f;:指定数据2:%f’,C(1,1),C(1,2)));%用title和sprintf绘制抬头并写数据
legend(sprintf(‘验证数据1’),sprintf(‘验证数据2’))%依次对两个plot绘制曲线命名
fullPath=fullfile(A_path,sprintf(‘验证数据.jpg’));
saveas(gcf,fullPath);
用上述方式绘制的图像
%绘图方案2:多个图像绘制在一起
figure
subplot(2,3,1);
yyaxis left %以左方纵坐标绘图
ylabel(‘零偏/单位:°/h’); %设置左边纵坐标
xlabel(‘时间/单位:1s’); %设置下方横坐标
plot(A(:,1),‘-’,‘Color’,‘b’)
yyaxis right %以右方纵坐标绘图
ylabel(‘温度/单位:℃’); %设置右边纵坐标
plot(B(:,1),‘-’,‘Color’,‘r’)
title(sprintf(‘指定数据1:%f;:指定数据2:%f’,C(1,1),C(1,2)));
legend(sprintf(‘验证数据1’),sprintf(‘验证数据2’))
subplot(2,3,2);
yyaxis left %以左方纵坐标绘图
ylabel(‘零偏/单位:°/h’); %设置左边纵坐标
xlabel(‘时间/单位:1s’); %设置下方横坐标
plot(A(:,1),‘-’,‘Color’,‘b’)
yyaxis right %以右方纵坐标绘图
ylabel(‘温度/单位:℃’); %设置右边纵坐标
plot(B(:,1),‘-’,‘Color’,‘r’)
title(sprintf(‘指定数据1:%f;:指定数据2:%f’,C(1,1),C(1,2)));
legend(sprintf(‘验证数据1’),sprintf(‘验证数据2’))
subplot(2,3,3);
yyaxis left %以左方纵坐标绘图
ylabel(‘零偏/单位:°/h’); %设置左边纵坐标
xlabel(‘时间/单位:1s’); %设置下方横坐标
plot(A(:,1),‘-’,‘Color’,‘b’)
yyaxis right %以右方纵坐标绘图
ylabel(‘温度/单位:℃’); %设置右边纵坐标
plot(B(:,1),‘-’,‘Color’,‘r’)
title(sprintf(‘指定数据1:%f;:指定数据2:%f’,C(1,1),C(1,2)));
legend(sprintf(‘验证数据1’),sprintf(‘验证数据2’))
subplot(2,3,4);
yyaxis left %以左方纵坐标绘图
ylabel(‘零偏/单位:°/h’); %设置左边纵坐标
xlabel(‘时间/单位:1s’); %设置下方横坐标
plot(A(:,1),‘-’,‘Color’,‘b’)
yyaxis right %以右方纵坐标绘图
ylabel(‘温度/单位:℃’); %设置右边纵坐标
plot(B(:,1),‘-’,‘Color’,‘r’)
title(sprintf(‘指定数据1:%f;:指定数据2:%f’,C(1,1),C(1,2)));
legend(sprintf(‘验证数据1’),sprintf(‘验证数据2’))
subplot(2,3,5);
yyaxis left %以左方纵坐标绘图
ylabel(‘零偏/单位:°/h’); %设置左边纵坐标
xlabel(‘时间/单位:1s’); %设置下方横坐标
plot(A(:,1),‘-’,‘Color’,‘b’)
yyaxis right %以右方纵坐标绘图
ylabel(‘温度/单位:℃’); %设置右边纵坐标
plot(B(:,1),‘-’,‘Color’,‘r’)
title(sprintf(‘指定数据1:%f;:指定数据2:%f’,C(1,1),C(1,2)));
legend(sprintf(‘验证数据1’),sprintf(‘验证数据2’))
subplot(2,3,6);
yyaxis left %以左方纵坐标绘图
ylabel(‘零偏/单位:°/h’); %设置左边纵坐标
xlabel(‘时间/单位:1s’); %设置下方横坐标
plot(A(:,1),‘-’,‘Color’,‘b’)
yyaxis right %以右方纵坐标绘图
ylabel(‘温度/单位:℃’); %设置右边纵坐标
plot(B(:,1),‘-’,‘Color’,‘r’)
title(sprintf(‘指定数据1:%f;:指定数据2:%f’,C(1,1),C(1,2)));
legend(sprintf(‘验证数据1’),sprintf(‘验证数据2’))
fullPath=fullfile(A_path,sprintf(‘验证数据.jpg’));
saveas(gcf,fullPath);
使用了subplot函数
%绘图方案3:多个图像绘制在一起并确认最后图像的大小和出现位置
%为节约空间我只列出修改部分
figure(‘position’,[100 100 1200 800])%为figure添加属性position,分别表示在屏幕左下角为坐标原点的100个像素点纵坐标,100个像素点横坐标位置处画一个长1200像素,宽800像素的图片,特别注意这里的大小是图形窗口的大小,根据我实际测试发现实际图像会大一些,达到了1875×1250像素
1875×1250像素
由于saveas保存无法设置分辨率,要想准确控制大小需要改为使用print输出图片的方式,这里就不扩展开来论述了。

一些用法解释

这里使用subplot(2,3,1);函数绘制多张图片,分别表示2行,3列的图片排列方式,1表示第一幅,这个排序是按照从左到右从上到下排列的;
figure(‘position’,[100 100 1200 800])%为figure添加属性position,分别表示在屏幕左下角为坐标原点的100个像素点纵坐标,100个像素点横坐标位置处画一个长1200像素,宽800像素的图片;
plot(A(:,1),‘-’,‘Color’,‘b’)中对于颜色,r是红,b是蓝,g是绿,其他颜色直接百度搜索即可得知

小结

以上把简单的绘图的方式描述了一下,但是很多细节还是需要学习完善,比如要如何缩减代码数量,提高代码复用率,如何绘制3d图等,以后我学到了再分享吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值