博客
关于我
MATLAB二维图形绘制
阅读量:625 次
发布时间:2019-03-13

本文共 5265 字,大约阅读时间需要 17 分钟。

MATLAB二维图形绘制

数据点标记

如: 含选项的plot函数 plot(x, y, 选项) 其中,选项用于指定曲线的线型、颜色和数据点标记

数据点

“*”:星号 “o”:圆圈 “s”:方块 “p”:五角星 “^”:朝上三角符号

颜色

“r” :红色 “g” :绿色 “b” :蓝色 “w”:白色 “k” :黑色 ……

线型

“-” :实线 “:” :虚线 “-.”:点划线 “–”:双划线

曲线图

一、plot函数

(一)最简单的plot函数调用格式: plot(x)

(1)plot函数的参数 X 为普通向量,

默认向量各元素为纵坐标;对应横坐标为元素所在向量的位置序号

x = [6, 4, 2, 5, 3];plot(x, '-*')

在这里插入图片描述

(2)plot函数的参数 x 是复数向量,

分别以该 向量元素实部虚部为横、纵坐标绘制出一条曲线。

x = [2.5, 3.6, 5.8, 9.0];y = [3.5, 1.2, 6.3, 8.2];cx = x+y*i;  plot(cx, '-*')

% cx 为复数向量, 下述语句同样可以构成复数

cx = complex(x, y);

在这里插入图片描述

(二)plot(x, y)

其中,x和y分别用于存储x坐标和y坐标数据。通常,x和y为长度相同的向量

(1)plot(x, y) 的函数参数 (x, y 为 长度相同的向量)
x = [2.5, 1.2, 3.6, 5.8, 9.0];y = [3.5, 4.5, 1.2, 6.3, 8.2];plot(x,y, '*-')

在这里插入图片描述

(2)plot(x, y)的函数参数 (x是向量,y是矩阵)
• 如果矩阵y的列数等于x的长度,则以向量x为横坐标,以y的每个行向量为纵坐标绘制曲线,曲线的条数等于y的行数。   • 如果矩阵y的行数等于x的长度,则以向量x为横坐标,以y的每个列向量为纵坐标绘制曲线,曲线的条数等于y的列数。

注: 即比较行数与列数, 那个相等即以另一个做纵坐标和曲线条数

x=linspace(0,2*pi,100);disp(x);pause(5);y=[sin(x); sin(2*x); sin(0.5*x)];plot(x,y)

解析: x 为 在[0 , 2pi] 有100个元素的行向量; y 为 3 * 100的矩阵

y 的列数与 x向量相等, 故以 y 的每一行为纵坐标,条数为y的行数
在这里插入图片描述

(3)plot(x, y)的函数参数 (x、y是同型矩阵)

以x、y对应列元素为横、纵坐标分别绘制曲线,曲线条数等于 矩阵的列数。

t=0:0.01:2*pi;t1=t';x=[t1, t1, t1];y=[sin(t1), sin(2*t1), sin(0.5*t1)];plot(x,y)

在这里插入图片描述

(4)含多个输入参数的plot函数 plot(x1, y1, x2, y2, …, xn, yn)

其中,每一向量对构成一组数据点的横、纵坐标,绘制一条曲线。

t1=linspace(0, 2*pi, 10);t2=linspace(0, 2*pi, 20);t3=linspace(0, 2*pi, 100);plot(t1, sin(t1), t2,sin(t2)+1,t3, sin(t3)+2)

数据点较少时:如 蓝色线 为曲线。 数据点越多越光滑

在这里插入图片描述

实例:用不同线型和颜色在同一坐标内绘制曲线y=2e-0.5xsin(2πx)及其 包络线。

x=(0:pi/50:2*pi)'; y1=2*exp(-0.5*x)*[1,-1]; y2=2*exp(-0.5*x).*sin(2*pi*x); x1=0:0.5:6; y3=2*exp(-0.5*x1).*sin(2*pi*x1); plot(x,y1,'k:', x,y2,'b--', x1,y3,'rp')

在这里插入图片描述

(三) plot函数总结:

使用plot函数绘图时,先要取得x、y坐标,然后再绘制曲线,x往往采取等间隔采样。在实际应用中,函数随着自变量的变化趋势未知, 或者在不同区间函数频率特性差别大,此时使用plot函数绘制图形, 如果自变量的采样间隔设置不合理,则无法反映函数的变化趋势。

在这里插入图片描述

在 [0, 0.1] 函数震荡明显,无法反映变化规律。但是 0.1 之后较为平缓, 可以使用 fplot 函数 对区间进行划分。

二、fplot函数

(一)fplot函数的基本用法 fplot(f ,lims, 选项 )

f 代表一个函数,通常采用函数句柄的形式。

lims 为x轴的 取值范围,用二元向量[xmin,xmax]描述,默认值为[-5, 5]。选项定 义与plot函数相同。
建议不采用数据点标注
例6 采用fplot函数绘制函数sin(1/ x) 。

fplot(@(x) sin(1./x),[0,0.2], 'b')

在这里插入图片描述

(二)双输入函数参数的用法 fplot(funx, funy, tlims, 选项)

其中,funx、funy 代表函数,通常采用函数句柄的形式。tlims为 参数函数funx和funy的自变量的取值范围,用二元向量[tmin,tmax] 描述 。

例7 已知螺旋线的参数方程

x = 𝑡 ∙ 𝑠𝑖𝑛𝑡
𝑦 = 𝑡 ∙ 𝑐𝑜𝑠𝑡 ,绘制曲线。

fplot(@(t)t.*sin(t), @(t)t.*cos(t), [0,10*pi], 'r')

在这里插入图片描述

例: 绘制函数曲线

在这里插入图片描述
调用plot函数同时绘制a=0.1、a=0.2、a=0.3 时的函数曲线。

a=[0.1,0.2,0.3];x=linspace(0,2*pi,1000);for k=1:3     y=(cos(a(k)*x)).^3+((sin(x)).^3);     subplot(3,1,k)     plot(x,y);

在这里插入图片描述

绘制函数曲线

已知y=cos(tan x),x∈[1,2],分别用plot函数和fplot函数绘制函数曲线,比较两种函数的用法。

x=linspace(1,2,100);

y=cos(tan(x));

subplot(2,1,1);

plot(x,y);

subplot(2,1,2);

fplot(x,@(x)cos(tan(x)),[1,2],‘b’);

其他坐标系下的二维曲线图

(1)对数坐标图

semilogx(x1, y1, 选项1, x2, y2, 选项2, …)semilogy(x1, y1, 选项1, x2, y2, 选项2, …)loglog(x1, y1, 选项1, x2, y2, 选项2, …)

semilogx函数x轴为常用对数刻度,y轴为线性刻度;

semilogy函数x轴为线性刻度,y轴为常用对数刻度;
loglog函 数x轴和y轴均采用常用对数刻度。

例1 绘制1/𝒙的直角线性坐标图和三种对数坐标图。

x=0:0.1:10; y=1./x; subplot(2,2,1) plot(x,y) title('plot(x,y)');grid on subplot(2,2,2) semilogx(x,y)    title('semilogx(x,y)');grid on subplot(2,2,3) semilogy(x,y) title('semilogy(x,y)');grid on subplot(2,2,4) loglog(x,y) title('loglog(x,y)');grid on

在这里插入图片描述

(2)极坐标图

polar(theta, rho, 选项)

其中,theta为极角,rho为极径,选项的内容与plot函数相同。

t = 0:pi/100:2*pi; disp(t);r = 1-sin(t); subplot(1,2,1) polar(t,r) subplot(1,2,2) t1 = t-pi/2; r1 = 1-sin(t1); polar(t,r1)

在这里插入图片描述

(1)条形类图形

①条形图

bar函数:绘制垂直条形图。
barh函数:绘制水平条形图。

bar函数 bar(y,style) 其中,参数y是数据,选项style用于指定分组排列模式。 “grouped”:簇状分组 “stacked”:堆积分组

% 绘制分组条形图

y=[1,2,3,4,5; 1,2,1,2,1; 5,4,3,2,1]; subplot(1,2,1) bar(y) title('Group','grouped') subplot(1,2,2) bar(y, 'stacked') title('Stack')

在这里插入图片描述

bar(x, y,style)

其中,x存储横坐标,y存储数据,y的行数必须与向量x的长度相同。选项style用于指定分组排列模式。

x=[2015,2016,2017]; y=[68,80,115,98,102;     75,88,102,99,110;     81,86,125,105,115]; bar(x, y) title('Group');

在这里插入图片描述

直方图

hist函数:绘制直角坐标系下的直方图。

hist(y)

hist(y, x)

其中,y是要统计的数据,x用于指定区间的划分方式。

若x是标量,则统计区间均分成x个小区间;

若x是向量,则向量x中的每一个数指定分组中心值,元素的个数为数据分组数。x缺省时,默认按10 个等分区间进行统计。

% 绘制服从高斯分布的直方图。 y=randn(500,1); subplot(2,1,1); hist(y); title('高斯分布直方图'); subplot(2,1,2); x=-3:0.2:3; hist(y,x); title('指定区间中心点的直方图')

在这里插入图片描述

rose函数:绘制极坐标系下的直方图。

rose(theta[,x])

其中,参数theta用于确定每一区间与原点的角度,选项x用于指定区间的划分方式。

% 绘制高斯分布数据在极坐标下的直方图。  y=randn(500,1);  theta=y*pi;  rose(theta)  title('在极坐标下的直方图')

在这里插入图片描述

面积类图形

①扇形图

pie函数
②面积图
area函数

pie(x, explode)

其中,参数 x 存储待统计数据,选项 explode 控制图块的显示模式。

通常 x 为向量

例:某次考试优秀、良好、中等、及格、不及格的人数分别为: 5、17、23、9、4,试用扇形统计图作成绩统计分析。

score = [5, 17, 23, 9, 4]; ex = [0,0,0,0,1]; pie(score, ex);   legend('优秀', '良好', '中等', '及格', '不及格', 'location', 'eastoutside')

说明: 'location’用于指定图例位置, 'eastoutside’表示图例放在绘图区域右 边的外侧。

在这里插入图片描述

散点类图形

scatter函数:散点图

stairs函数: 阶梯图
stem函数: 杆图

scatter函数

scatter(x, y, 选项, ‘filled’)

其中,x、y用于定位数据点,
选项用于指定线型、颜色、数据 点标记。

如果数据点标记是封闭图形,可以用选项‘filled’指定 填充数据点标记。该选项省略时,数据点是空心的。

例: 以散点图形式绘制桃心曲线,曲线的参数方程如下:

𝑥 = 16𝑠𝑖𝑛3𝑡

𝑦 = 13𝑐𝑜𝑠𝑡 − 5cos(2𝑡) − 2cos(3𝑡) − cos(4𝑡)

t = 0:pi/50:2*pi; x = 16*sin(t).^3; y = 13*cos(t)-5*cos(2*t)-2*cos(3*t)-cos(4*t); scatter(x,y,'rd','filled')

在这里插入图片描述

矢量类图形

compass函数:罗盘图

feather函数:羽毛图
quiver函数: 箭头图

quiver函数

quiver函数调用格式:

quiver(x, y, u, v)

其中,(x, y)指定矢量起点,(u, v)指定矢量终点。

x、y、u、v 是同样大小的向量或同型矩阵,若省略x、y,则在 x-y 平面上均匀取 若干个点作为起点。

例:已知向量A、B,求A+B,并用矢量图表示

A=[4,5]; B=[-10,0]; C=A+B; hold on; quiver(0, 0, A(1), A(2)); quiver(0, 0, B(1), B(2)); quiver(0, 0, C(1), C(2)); text(A(1),A(2),'A');text(B(1),B(2),'B'); text(C(1),C(2),'C'); axis ([-12, 6, -1, 6]) grid on

在这里插入图片描述

转载地址:http://ulnaz.baihongyu.com/

你可能感兴趣的文章
mysql 使用sql文件恢复数据库
查看>>
mysql 修改默认字符集为utf8
查看>>
Mysql 共享锁
查看>>
MySQL 内核深度优化
查看>>
mysql 内连接、自然连接、外连接的区别
查看>>
mysql 写入慢优化
查看>>
mysql 分组统计SQL语句
查看>>
Mysql 分页
查看>>
Mysql 分页语句 Limit原理
查看>>
MySql 创建函数 Error Code : 1418
查看>>
MySQL 创建新用户及授予权限的完整流程
查看>>
mysql 创建表,不能包含关键字values 以及 表id自增问题
查看>>
mysql 删除日志文件详解
查看>>
mysql 判断表字段是否存在,然后修改
查看>>
MySQL 到底能不能放到 Docker 里跑?
查看>>
mysql 前缀索引 命令_11 | Mysql怎么给字符串字段加索引?
查看>>
MySQL 加锁处理分析
查看>>
mysql 协议的退出命令包及解析
查看>>
mysql 参数 innodb_flush_log_at_trx_commit
查看>>
mysql 取表中分组之后最新一条数据 分组最新数据 分组取最新数据 分组数据 获取每个分类的最新数据
查看>>