当前位置: 首页 > news >正文

MATLAB常用绘图函数的使用

文章目录

  • 绘制一图一线
  • 绘制一图多线
    • 用法一:plot
    • 用法二:hold on
  • 绘制一图多图
  • 其他形式的坐标图
  • 分段函数绘制
    • 方法一:分段写函数的定义域值域
    • 方法二:判断定义域
    • 方法三:if else 判断
  • 横纵坐标范围设置
  • 标题、轴标签、图例、字体大小及轴线位置设置
  • 补充
    • 颜色与线型方案
    • 点乘和乘的区别


本文对MATLAB中绘制二维图的常用函数的使用进行例举并给出图示。对函数图的绘制,颜色与线型,坐标范围设置,标题、标签、图例、字体大小等设置做出说明。

绘制一图一线

用法:

plot(x,y); %其中x,y为长度相同的向量,存储x坐标和y坐标

举例:

x = 0:2*pi/100:2*pi;%x坐标格式(x = 起始点:间隔:结束点)
y = sin(x);
plot(x,y);

如图:
在这里插入图片描述

绘制一图多线

用法一:plot

plot(x,y1,'选项1',x,y2,'选项2',x,y3,'选项三');%选项格式:颜色+线型,如b*、r-、k-o

举例:

x = 0:pi/10:2*pi; %x坐标
y1 = sin(x);      %y坐标1
y2 = cos(x-0.25); %y坐标1
y3 = sin(x-0.5);  %y坐标1figure;            %新开一个画图窗口
plot(x,y1,'g',x,y2,'b--o',x,y3,'k*');

如图:
在这里插入图片描述

用法二:hold on

hold on;%保留当前坐标区中的绘图,从而使新添加到坐标区中的绘图不会删除现有绘图

举例:

x = linspace(-pi,pi,100); %格式linspace(起始点,结束点,元素个数)
y1 = sin(x);
plot(x,y1);hold on;
y2 = cos(x);
plot(x,y2);

如图:
在这里插入图片描述

绘制一图多图

用法:

subplot(m,n,p); %将当前图窗划分为 m×n 网格,并在 p 指定的位置创建坐标区。

举例:

%创建一个包含三个子图的图窗。在图窗的上半部分创建两个子图,并在图窗的下半部分创建第三个子图。
subplot(2,2,1); %第一个图
x = linspace(-3.8,3.8);
y_cos = cos(x);
plot(x,y_cos);subplot(2,2,2); %第二个图
y_poly = 1 - x.^2./2 + x.^4./24;
plot(x,y_poly,'g');subplot(2,2,[3,4]); %第三四个图
plot(x,y_cos,'b',x,y_poly,'g');

如图:
在这里插入图片描述

其他形式的坐标图

  • 杆图 stem(x,y)
  • 条形图 bar(x,y)
  • 填充图 fill(x,y)
  • 阶梯图 stairs(x,y)
  • fill函数按向量元素下标渐增次序依次用直线段连接x,y对应元素定义的数据点。

举例:

x = 0:0.35:7;
y = 2*exp(-0.5*x);
subplot(2,2,1);stem(x,y,'k');
title('stem(x,y,''k'')');axis([0, 7, 0 ,2]);
subplot(2,2,2);bar(x,y,'g');
title('bar(x,y,''g'')');axis([0, 7, 0 ,2]);
subplot(2,2,3);fill(x,y,'r');
title('fill(x,y,''r'')');axis([0, 7, 0 ,2]);
subplot(2,2,4);stairs(x,y,'b');
title('stairs(x,y,''b'')');axis([0, 7, 0 ,2]);

如图:
在这里插入图片描述

分段函数绘制

方法一:分段写函数的定义域值域

举例:

%分别写出各段的xy
t1=0:0.1:10;
v1=0.5*t1.^2;t2=10:0.1:20;
v2=2*t2+10;t3=20:0.1:30;
v3=sin(t3);%合并xy
t=[t1 t2 t3];
v=[v1 v2 v3];%画图
plot(t,v);

如图:
在这里插入图片描述

方法二:判断定义域

举例:

%组合函数y=y1.*(x定义域)+y2.*(x定义域)
x=0:0.1:2;
y=x.*(x>=0&x<=1)+(-(x-1).^2+1).*(x>1&x<=2);%括号外是函数,括号内判断为1
plot(x,y);   

如图:
在这里插入图片描述

方法三:if else 判断

举例:

t=0:0.01:30;
v=zeros(size(t));
for i=1:length(t)if t(i)<=10v(i)=0.5*t(i).^2;elseif(t(i)>=10)&(t(i)<=20)v(i)=2*t(i)+10;elsev(i)=sin(t(i));end
end
plot(t,v);

如图:
在这里插入图片描述

横纵坐标范围设置

用法一:axis

axis(limits) %limits指定当前坐标区的范围。以包含 4 个元素的向量形式指定范围。

举例:

x = linspace(0,2*pi);
y = sin(x);
plot(x,y,'-o');
axis([0 2*pi -1.5 1.5]);%指定横坐标范围0-2pi,纵坐标范围-1.5-1.5

如图:
在这里插入图片描述

用法二:xlim ylim

xlim([0 2*pi]);%指定横坐标范围
ylim([-1.5 1.5]);%指定纵坐标范围
xlim([-inf 2*pi]);%使用inf自动指定横坐标一边的范围

举例:

x = linspace(0,2*pi);
y = sin(x);
plot(x,y,'-o');
xlim([0 2*pi]);%指定横坐标范围0-2pi
ylim([-1.5 1.5]);%指定纵坐标范围-1.5-1.5

绘制的图和上图一样。

标题、轴标签、图例、字体大小及轴线位置设置

标题:

title('Original Signal');%标题放单引号内

轴标签:

xlabel('X(m)');%横坐标标签放单引号内
ylabel('Y(m)');%纵坐标标签放单引号内

图例:

legend(label1,...,labelN) %设置图例标签。以字符向量或字符串列表形式指定标签,例如 legend('Jan','Feb','Mar')。

字体大小:

title('标题名','FontSize',20)
xlabel('X','FontSize',15)
ylabel('Y','FontSize',10)

轴线位置:

默认情况下,x 轴和 y 轴沿坐标区的外边界显示。通过设置 Axes 对象的 XAxisLocation 和 YAxisLocation 属性来更改轴线位置。将 XAxisLocation 设置为 ‘top’、‘bottom’ 或 ‘origin’。将 YAxisLocation 设置为 ‘left’、‘right’ 或 ‘origin’。这些属性仅适用于二维视图中的坐标区。

ax = gca;
ax.XAxisLocation = 'top';%x轴线位置放于顶处
ax.YAxisLocation = 'right';%y轴线位置放于右边

举例:

x = linspace(-2*pi,2*pi,100);
y1 = sin(x);
y2 = cos(x);
figure;
plot(x,y1,x,y2);%一图两线
xlabel('-2\pi < x < 2\pi');%x轴标签
title('Line Plot of Sine and Cosine Between -2\pi and 2\pi','FontSize',15);%标题
ylabel('Sine and Cosine Values');%y轴标签
legend({'y = sin(x)','y = cos(x)'},'Location','southwest','FontSize',8);%放在左下角ax = gca;
ax.XAxisLocation = 'origin';%x轴线位置放于原点处
ax.YAxisLocation = 'origin';%y轴线位置放于原点处

如图:
在这里插入图片描述

补充

颜色与线型方案

plot(x,y1,'g',x,y2,'b--o',x,y3,'k*');%单引号中选择颜色+线型:如b*、r-、k-o
类型含义
颜色'c' 'm' 'y' 'r' 'g' 'b' 'w' 'k'青蓝 品红 黄 红 绿 蓝 白 黑
线型'-' '--' ':' '-.' 无字符实线 虚线 点线 点划线 没有线条
标记类型'+' 'o' '*' 'x' 's' 'd' '^' 'v' '>' '<' 'p' 'h' 无字符加号 空心圆 星号 字母 x 空心正方形 空心菱形 空心上三角 空心下三角 空心右三角 空心左三角 空心五角形 空心六角形 无标记

点乘和乘的区别

在上面的函数绘制中使用到了*与.*, .^ , ./等运算,其区别如下:

以*与.*为例:

1.1,在进行数值运算和数值乘矩阵时,

这两种没有区别,例如:a*b=a.*b; a*B=a.*B; B*a=B.*a(其中小写字母表示数值,大写字母表示矩阵)

1.2 ,在进行矩阵和矩阵运算时,

*表示普通的矩阵乘法,要求前面矩阵的列数等于后面矩阵的行数;

.*表示两个矩阵对应元素相乘,要求两个矩阵行数列数都相等。

举一反三: /与./ ^与.^ 也是一样的道理。

相关文章:

  • 完美解决k8s master节点无法ping node节点中的IP或Service NodePort的IP
  • windows搭建gitlab教程
  • PostgreSQL中所的锁
  • MQTT通信协议使用说明
  • 防雷接地+防雷工程施工综合方案
  • 最新红盟云卡个人自动发卡开源系统源码+全开源无加密+虚拟商品在线售卖平台
  • 4、FFmpeg命令行操作5
  • 无人驾驶相关硬件汇总
  • 如何将 Docsify 项目部署到 CentOS 系统的 Nginx 中
  • echarts 多toolti同时触发图表实现
  • 数理统计的基本概念(二)
  • 操作系统安装在哪里?
  • Spark 平障录
  • YOLO目标检测——无人机检测数据集下载分享【含对应voc、coco和yolo三种格式标签】
  • Android studio Build Log乱码+错误: 找不到符号符号
  • Google 是如何开发 Web 框架的
  • [译]CSS 居中(Center)方法大合集
  • 【跃迁之路】【699天】程序员高效学习方法论探索系列(实验阶段456-2019.1.19)...
  • ES6语法详解(一)
  • JavaScript异步流程控制的前世今生
  • Js实现点击查看全文(类似今日头条、知乎日报效果)
  • laravel with 查询列表限制条数
  • Mybatis初体验
  • 笨办法学C 练习34:动态数组
  • 从重复到重用
  • 基于webpack 的 vue 多页架构
  • 基于遗传算法的优化问题求解
  • 技术:超级实用的电脑小技巧
  • 解析带emoji和链接的聊天系统消息
  • 前端每日实战:70# 视频演示如何用纯 CSS 创作一只徘徊的果冻怪兽
  • 数据可视化之下发图实践
  • ​如何在iOS手机上查看应用日志
  • # 再次尝试 连接失败_无线WiFi无法连接到网络怎么办【解决方法】
  • #define MODIFY_REG(REG, CLEARMASK, SETMASK)
  • #设计模式#4.6 Flyweight(享元) 对象结构型模式
  • (1)Android开发优化---------UI优化
  • (145)光线追踪距离场柔和阴影
  • (SpringBoot)第二章:Spring创建和使用
  • (附源码)spring boot校园健康监测管理系统 毕业设计 151047
  • (附源码)springboot课程在线考试系统 毕业设计 655127
  • (附源码)ssm本科教学合格评估管理系统 毕业设计 180916
  • (紀錄)[ASP.NET MVC][jQuery]-2 純手工打造屬於自己的 jQuery GridView (含完整程式碼下載)...
  • (免费领源码)python#django#mysql公交线路查询系统85021- 计算机毕业设计项目选题推荐
  • (三)模仿学习-Action数据的模仿
  • (太强大了) - Linux 性能监控、测试、优化工具
  • (一)u-boot-nand.bin的下载
  • (原創) 如何讓IE7按第二次Ctrl + Tab時,回到原來的索引標籤? (Web) (IE) (OS) (Windows)...
  • (原創) 系統分析和系統設計有什麼差別? (OO)
  • (转)linux 命令大全
  • (转)winform之ListView
  • (转)如何上传第三方jar包至Maven私服让maven项目可以使用第三方jar包
  • (转)树状数组
  • *** 2003
  • .gitignore文件—git忽略文件
  • .NET Core跨平台微服务学习资源