MATLAB绘图函数plot详解

一、引言
Matlab软件提供了强大的可视化功能,可以根据给定的曲线上的坐标来绘制曲线图形,也可以根据已知的函数及自变量来绘制曲线图形,也可以只给定自变量的取值范围来绘制曲线,基本的Matlab函数是plot、fplot、ezplot、fimplicit等,本文详述利用plot绘制二维曲线图形的用法。
二、plot基本用法详述
基本语法:

plot(x,y,s)

其中x是横坐标(数组)、y是纵坐标(数组)、s是图元属性
其功能是根据横坐标和纵坐标数组绘制曲线。横坐标和图元属性s均可以缺省。
1)当横坐标缺省时,系统会自动指定横坐标位单位坐标;
2)当缺省s的时候,就是取点连线,即相邻的两个坐标点之间用直线连接,整体图形就是一条折线;
3)当给定了具体的属性s的时候,就根据属性s绘制不同的曲线。
属性s的常见值及图元线型
在这里插入图片描述

(一)已知曲线上点的坐标来绘制曲线图形
例1.已知横坐标和纵坐标,绘制曲线图。

%示例代码(1)
x = [ 1 : 9 ]; %横坐标
y = [1 2 3 4 6 4 3 4 5]; %纵坐标
plot( x ,y ) %绘图
%运行结果

在这里插入图片描述

%示例代码(2)对比给定横坐标和系统缺省横坐标情况
x = [ 2 : 0.5 : 6 ]; %横坐标
y = [1 2 3 4 6 4 3 4 5]; %纵坐标
plot( x ,y ) %根据给定的横坐标和纵坐标绘图
hold on
plot( y, 'r' ) %根据给定的纵坐标绘图,横坐标为系统缺省,‘r’表示红色
%运行结果

在这里插入图片描述

(二)已知曲线的函数和自变量取值范围来绘制曲线图形
例2.绘制一个周期内的正弦曲线

%示例代码
x = [ 0: 0.01 : 2 ] * pi;%定义横坐标(自变量)的取值(数组)
y = sin( x );%计算纵坐标
plot( x, y );%利用plot绘制y=sin(x)曲线,此时会系统会新建一个图形窗口
xlabel( 'x' );%标记横坐标为x
ylabel( 'sin(x)' )%标记纵坐标为sin(x)
%运行结果

在这里插入图片描述

例3.在同一个窗口绘制一个周期内的正弦曲线和余弦曲线

%示例代码(1)
x = [ 0: 0.01 : 2 ] * pi;%定义横坐标(自变量)的取值(数组)
y1 = sin( x );%计算y=sin(x)纵坐标
y2 = cos( x );%计算y=cos(x)纵坐标
plot( x, y1, x, y2 );%在一个图形窗口同时绘制y=sin(x)和y=cos(x)曲线
legend( 'y=sin(x)', 'y=cos(x)', 'Location', 'northeastoutside' );%添加图例
title( 'y=sin(x)和y=cos(x)的曲线' );%添加图的标题
%运行结果

在这里插入图片描述

%示例代码(2)
x = [ 0: 0.05 : 2 ] * pi;%定义横坐标(自变量)的取值(数组)
plot( x, sin(x), 'r' );%用红色线绘制y=sin(x)曲线
hold on
plot( x, cos(x), 'b*' );%用蓝色*绘制y=cos(x)曲线
legend( 'y=sin(x)', 'y=cos(x)', 'Location', 'northeastoutside' );%添加图例
title( 'y=sin(x)和y=cos(x)的曲线' );%添加图的标题
%运行结果

在这里插入图片描述

例4.绘制单位圆

%示例代码(1)
x = [ -1: 0.01 : 1 ];%定义横坐标(自变量)的取值(数组)
y = sqrt( 1 - x.^2 );
plot( x, y, 'b', x, -y, 'b' );%绘制单位圆,分上半圆和下半圆
title( '单位圆' );%添加图的标题
axis equal
%运行结果

在这里插入图片描述

%示例代码(2)使用极坐标绘图
rou = 1;
theta= [ 0: 0.05 : 2 ] * pi;%定义极角theta的范围
x = rou * cos( theta );%横坐标
y = rou * sin( theta );%纵坐标
plot( x, y, 'bo' );%用蓝色的o绘制单位圆
hold on%保持住当前图形窗口,继续绘制后面的图形
plot( x, y, 'r' );%用红色实线再绘制单位圆
axis( [ -1.5, 1.5, -1.5, 1.5 ] );%指定坐标轴刻度范围
title( '单位圆' );%添加图的标题
axis equal
%运行结果

在这里插入图片描述
例5.绘制分段函数曲线
在这里插入图片描述

%示例代码
%方法一
clear all
clc
x1 = [ 1 : 5 ];
y1 = 6 - x1; 
x2 = [ 6 : 15 ];
y2 = ones( size(x2) );
x3 = [ 16 : 20 ];
y3 = x3 - 15;
xx = [ x1, x2, x3 ];
yy = [ y1, y2, y3 ];
plot( xx, yy, 'r*' )
hold on
%方法二(数组元素过滤法)
x = [ 1 : 20 ];
y( x >= 1 & x <= 5 ) = 6 - x(x >= 1 & x <= 5 );
y( x >= 6 & x <= 15 ) = 1;
y( x >= 16  & x <= 20 ) = x(  x >= 16  & x <= 20  ) - 15;
xlen = length( x )
ylen = length( y )
plot( x, y, 'b' );
axis( [ 0, 21, 0, 6 ] );
%运行结果

在这里插入图片描述

  • 66
    点赞
  • 491
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值