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

您所在的位置:网站首页 二维平面图形绘制 分享一些matlab中对绘制二维平面图的操作方法,包括多图像绘制到一个图中,稍微修改图像大小等

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

2024-07-12 09:52| 来源: 网络整理| 查看: 265

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=rand5;%随机振幅 frequency=rand5;%随机频率 phase=2pirand;%随机相位 t=linspace(0,1pi,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图等,以后我学到了再分享吧。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3