第四章 数据及函数的可视化
DESCRIPTION
第四章 数据及函数的可视化. 数据可视化是数据分析、系统分析的一种重要方法。 MATLAB 具有丰富且易于理解和使用的绘图指令,数据和函数的可视化是 MATLAB 的重要组成部分。. 本章主要内容如下: 4.1 可视化的基本步骤 4.2 二维曲线绘图 4.3 三维曲线绘图 4.4 图形窗功能简介. 引子. 如何画出 y=sin(x) 在 [0, 2* pi] 上的图像?. 引子. 手工作图. 找点: x=0 , pi/3 , pi/2 , 2*pi/3 , pi , …. - PowerPoint PPT PresentationTRANSCRIPT
第四章 数据和函数的可视化
MATLAB 编程应用基础
第四章 数据及函数的可视化
本章主要内容如下:4.1 可视化的基本步骤4.2 二维曲线绘图4.3 三维曲线绘图4.4 图形窗功能简介
数据可视化是数据分析、系统分析的一种重要方法。 MATLAB 具有丰富且易于理解和使用的绘图指令,数据和函数的可视化是 MATLAB 的重要组成部分。
第四章 数据和函数的可视化
MATLAB 编程应用基础
引子如何画出 y = sin(x) 在 [0, 2*pi] 上的图像?
第四章 数据和函数的可视化
MATLAB 编程应用基础
手工作图引子
找点: x=0, pi/3, pi/2, 2*pi/3, pi, …
计算函数值: y=sin(0), sin(pi/3), sin(pi/2), …
描点:在坐标系中画出这些离散点 用直线或曲线连接这些点,得到函数的大致图形
第四章 数据和函数的可视化
MATLAB 编程应用基础
Matlab 作图引子
给出离散点列: x=[0:pi/10:2*pi] 计算函数值: y=sin(x) 画图:用 matlab 二维绘图命令 plot 作出函数图形 plot(x,y)
例: >> x=[0:pi/10:2*pi];>> y=sin(x);>> plot(x,y);
第四章 数据和函数的可视化
MATLAB 编程应用基础
4.1 可视化的基本步骤1. 曲线数据准备(以二维图形为例):
选取一个参变量采样向量 计算各坐标数据向量
2. 选定图形窗及子图位置;3. 调用曲线绘图指令;4. 设置轴的范围5. 图形注释(图名、坐标名、图例、文字说明)。
第四章 数据和函数的可视化
MATLAB 编程应用基础
例用图形表示 y=sin(t)sin(9t).
t=(0:100)/100*pi; y=sin(t).*sin(9*t);subplot(2,1,1),plot(t,y,'r.'),axis([0,pi,-1,1]),title(' 子图 1')subplot(2,1,2),plot(t,y),axis([0,pi,-1,1]),title(' 子图 2')
% 产生参变量采样向量% 产生数据向量
% 确定子图、线 % 型、注释等
第四章 数据和函数的可视化
MATLAB 编程应用基础
4.2 二维曲线绘图4.2.1 plot 的基本调用格式
a) plot(X,’s’) X 为实向量时,以该向量元素的下标为横坐标,元素值为纵坐标画一条连续曲线。 X 为实矩阵时,则按列绘制每列元素值相对其下标的曲线,图中曲线数等于 X 阵列数。 X 为复数矩阵时,则按列绘制每列以元素实部和虚部为横、纵坐标绘制多条曲线。 用来指定线型、色彩等,缺省时为 MATLAB 默认设置。
第四章 数据和函数的可视化
MATLAB 编程应用基础
【例 3-1 】二维曲线绘图基本指令演示一。>> t=(0:pi/50:2*pi)';
k=0.4:0.1:1;
Y=cos(t)*k;
plot(Y)
% 生成 (101*1) 的时间采样列向量% 生成 (1*7) 的行向量% 生成 (101*7) 的矩阵
第四章 数据和函数的可视化
MATLAB 编程应用基础
4.2 二维曲线绘图4.2.1 plot 的基本调用格式
b) plot(X,Y,’s’) X 、 Y 是同维向量时,绘制 X 、 Y 元素为横、纵坐标的曲线。 X 是列向量, Y 是与 X 等行的矩阵时,以 X 为横坐标,
按 Y 的列数绘制多条曲线。 X 是矩阵, Y 是向量时,以 Y 为纵坐标按 X 的列数绘制多条曲线。 X 、 Y 是同维矩阵时,以 X , Y 对应列元素为横、纵坐标分别绘制曲线,曲线条数等于矩阵列数 s 的意义与其在 plot(X ,’ s’) 中相同。
第四章 数据和函数的可视化
MATLAB 编程应用基础
【例 3-2 】二维曲线绘图基本指令演示二: plot(t,Y) 、 plot(Y,t) 所绘图形的比较。>> t=(0:pi/50:2*pi)';
k=0.4:0.1:1;
Y=cos(t)*k;
plot(t,y)% 生成 (101*7) 的矩阵% 生成 (1*7) 的行向量% 生成 (101*1) 的列向量
第四章 数据和函数的可视化
MATLAB 编程应用基础
4.2 二维曲线绘图4.2.2 曲线的色彩、线型和数据点形
a) 色彩和线型线型
符号 - : -. --含义 实线 虚线 点划线 双划线
色彩 符号 b g r c m y k w含义 蓝 绿 红 青 品红 黄 黑 白
【说明】当‘ s’ 缺省时,默认设置为 曲线一律用“实线”线型。 不同曲线按表中所给前七种颜色次序着色 , 依次为蓝、绿、红等 .
第四章 数据和函数的可视化
MATLAB 编程应用基础
【例 3-3 】二维曲线绘图基本指令演示三:色彩和线型。用图形表示连续调制波形 及其包络线。 )9sin()sin( tty
>> t=(0:pi/100:pi)';y1=sin(t)*[1,-1];y2=sin(t).*sin(9*t);plot(t,y1,'r:',t,y2,'b')axis([0,pi,-1,1])
% 生成( 101*1 )的时间采样列向量% 生成( 101*2 )的矩阵(包络线函数值)% 生成( 101*1 )的调制波列向量% 用红虚线绘 y1 ,用蓝实线绘 y2
第四章 数据和函数的可视化
MATLAB 编程应用基础
4.2 二维曲线绘图4.2.2 曲线的色彩、线型和数据点形
b) 数据点形 数据点形用来标志数据点,即可单独使用也可与色彩、线型组合使用。
符 号 含 义 符 号 含 义. 实心黑点 d 菱形符+ 十字符 h 六角星符^ 朝上三角符 o 空心圆符< 朝左三角符 p 五角星符> 朝右三角符 s 方块符v 朝下三角符 x 叉字符
第四章 数据和函数的可视化
MATLAB 编程应用基础
【例 3-4 】二维曲线绘图基本指令演示四:数据点形 ( 函数与例 3-3 相同 ) 。>> t=(0:pi/100:pi)';y2=sin(t).*sin(9*t);t1=pi*(0:9)/9;y3=sin(t1).*sin(9*t1);plot(t,y2,'b',t1,y3,'bp')axis([0,pi,-1,1])
% 用蓝实线绘 y2, 用☆对 y3 进行标志
% 生成( 1*10 )数据标志点采样向量% 生成( 1*10 )数据标志点数据
第四章 数据和函数的可视化
MATLAB 编程应用基础
plot(x1,y1,s1,x2,y2,s2, ... ,xn,yn,sn)
属性选项可以省略
等价于:hold onplot(x1,y1,s1)plot(x2,y2,s2)...plot(xn,yn,sn)
扩展:一张图同时汇多个图形
hold onhold offFigure ???
第四章 数据和函数的可视化
MATLAB 编程应用基础
>> x=-pi:pi/10:pi;>> y=sin(x);>> plot(x,y,'rh:','linewidth',2, ... 'markeredgecolor','b', ... 'markerfacecolor','g')
例: 线条的粗细,字体大小,坐标轴属性等。
linewidth : 指定线条的粗细markeredgecolor: 指定标记的边缘色markerfacecolor: 指定标记表面的颜色
注: 1) 属性与属性的值是成对出现的 2) 更多属性参见 plot 的联机帮助
扩展:绘图其他属性
第四章 数据和函数的可视化
MATLAB 编程应用基础
4.2 二维曲线绘图4.2.3 图形控制 在一般绘图时可采用 MATLAB 的缺省设置,也能得到满意的画面,但用户也可根据需要改变缺省设置。
a) 坐标控制指 令 含 义 指 令 含 义
axis auto 使用缺省设置 axis equal 纵、横轴为等长刻度axis ij 矩阵式坐标 axis normal 缺省矩形坐标系axis xy 普通直角坐标 axis square 正方形坐标系axis(V)V=[x1,x2,y1,y2]V=[x1,x2,y1,y2,z1,z2]
人工设定坐标范围。设定值:二维, 4 个;三维, 6 个 .
axis tight 坐标范围为数据范围axis image 纵、横轴为等长刻
度 , 且坐标框紧贴数据范围
第四章 数据和函数的可视化
MATLAB 编程应用基础
4.2.3 图形控制b) 分格线和坐标框
grid on 画出分格线 grid off 不画分格线 box on 使当前坐标呈封闭形式 box off 使当前坐标呈开启形式
【说明】缺省时,不画分格线;坐标呈封闭形式。
第四章 数据和函数的可视化
MATLAB 编程应用基础
【说明】 S 为带单引号的英文或中文字符串。
x=0:0.1:1; y=x.*exp(-x); plot(x,y);xlabel(‘x’),ylabel(‘y’) % 图形标识title(‘y=x*exp(-x)’) % 图形标识
【例 3-6 】二维曲线绘图基本指令演示: 图形标识
4.2.3 图形控制c) 图形标识
title(S) 书写图名 xlable(S) 横坐标轴名 ylable(S) 纵坐标轴名 text(xt,yt,S) 在 (xt,yt) 处写字符注释 legend(s1,s2,…) 在图右上角建立图例
第四章 数据和函数的可视化
MATLAB 编程应用基础
4.2 二维曲线绘图
利用精细指令可以对图形进行精细控制,例如在图形指定位置显示各种字符,公式等。
4.2.3 图形控制c) 图形标识
精细指令形式
第四章 数据和函数的可视化
MATLAB 编程应用基础
4.2 二维曲线绘图4.2.3 图形控制
c) 图形标识 精细指令形式
指 令 字符 指 令 字符 指 令 含义 arg 取值 举例\alpha \omega ^{arg} 上标 任何合法字符 '\ite^{-\
alphat}'\beta \Omega _{arg} 下标 任何合法字符 '\rmt_{s}'
\xi \neq \arg 风格 bf( 黑体 )it(斜体 )rm( 正体 )
\int \times \fontsize{arg}
大小 正整数( 缺省值为10)
'\fontsize{12}sin'
示例结果 :(1) ;(2)ts ;(3)sinte
第四章 数据和函数的可视化
MATLAB 编程应用基础
t=pi*(0:1/100:1);beta=asin(1);y=1-exp(-2*t).*sin(5*t+beta);plot(t,y)text(3.0,1.14,'\bf\alpha = 2')text(3.0,1.10,'\rm\omega = 5')xlabel('\fontsize{14}\bft')ylabel('\fontsize{14}y')title('\rm y=1-e^{-\alphat}sin(\omegat+\beta)')
例 3-6 精细指令示例
第四章 数据和函数的可视化
MATLAB 编程应用基础
4.2.3 图形控制d) 双纵坐标图
把同一自变量的两个不同量纲、不同数量级的函数绘制在同一张图上,即为双纵坐标图。 plotyy(X1,Y1,X2,Y2) 以左右不同纵轴绘制 X1-Y1,X2-Y2两条曲线。 plotyy(X1,Y1,X2,Y2,FUN) 以左右不同纵轴把 X1-Y1,X2-Y2 绘制成 FUN 指定形式的两条曲线。 plotyy(X1,Y1,X2,Y2,FUN1,FUN2) 以左右不同纵轴把 X1-Y1,X2-Y2 绘制成 FUN1,FUN2 指定的不同形式的两条曲线。
【说明】1) 轴的范围、刻度自动产生。2) FUN,FUN1,FUN2 为 MATLAB 中所有接受 X-Y 数据对的二维绘图指
令 .
第四章 数据和函数的可视化
MATLAB 编程应用基础
【例 3-7 】已知系统单位阶跃响应和单位脉冲响应分别为
其中 , . 用双纵坐标图画出这两个函数在区间 [0,4] 上的曲线 .
2
2
1arctansin
111 tey d
tn
t=0:0.02:3;xi=0.5;wn=5;sxi=sqrt(1-xi^2);sita=atan(sxi/xi);wd=wn*sxi;y1=1-exp(-xi*wn*t).*sin(wd*t+sita)/sxi;y2=wn*exp(-xi*wn*t).*sin(wd*t)/sxi;plotyy(t,y1,t,y2)
tedtdy
dtn n
sin1 2
0.5rad/s,5,1 2 nnd
第四章 数据和函数的可视化
MATLAB 编程应用基础
4.2 二维曲线绘图4.2.3 图形控制
e) 多子图 MATLAB允许用户在同一个图形窗里布置几幅独立的子图。
subplot(m,n,k)
使 (m×n)幅子图中的第 k幅成为当前图 . subplot(‘position’,[left bottom widt hight])
在指定位置开辟子图,并成为当前图 .【说明】1) subplot(m,n,k) 表示图形窗有 (m×n)幅子图 ,k 是子图编号。序号编排原则是 : 左上方为第一幅 , 向右向下依次排号。2) subplot(‘position’,[left bottom widt hight]) 产生的子图位置由人工指定,指定位置的四元组采用规划的标称单位,即认为图形窗的高、宽的取值范围都是 [0 , 1] 。
第四章 数据和函数的可视化
MATLAB 编程应用基础
4.2 二维曲线绘图4.2.3 图形控制
e) 多子图 MATLAB允许用户在同一个图形窗里布置几幅独立的子图。
subplot(m,n,k)
使 (m×n)幅子图中的第 k幅成为当前图 . subplot(‘position’,[left bottom widt hight])
在指定位置开辟子图,并成为当前图 .【说明】1) subplot(m,n,k) 表示图形窗有 (m×n)幅子图 ,k 是子图编号。序号编排原则是 : 左上方为第一幅 , 向右向下依次排号。2) subplot(‘position’,[left bottom widt hight]) 产生的子图位置由人工指定,指定位置的四元组采用归一化的标称单位,即认为图形窗的高、宽的取值范围都是 [0 , 1] 。
第四章 数据和函数的可视化
MATLAB 编程应用基础
【例 3-8 】二维曲线绘图基本指令演示:多子图t=(pi*(0:1000)/1000)';y1=sin(t);y2=sin(10*t);y12=sin(t).*sin(10*t);subplot(2,2,1),plot(t,y1);axis([0,pi,-1,1])subplot(2,2,2),plot(t,y2);axis([0,pi,-1,1])subplot('position',[0.2,0.05,0.6,0.45])plot(t,y12,'b-',t,[y1,-y1],'r:');axis([0,pi,-1,1])
子图一子图二子图三
第四章 数据和函数的可视化
MATLAB 编程应用基础
4.3 三维曲线绘图4.3.1 plot3 的基本调用格式
plot3 在三维曲线绘图指令中是最易理解的,其使用格式与 plot 十分相似。具体如下: plot3(X,Y,Z,’s’) plot3(X1,Y1,Z1,’s1’,X2,Y2,Z2,’s2’,…)
【说明】1) X,Y,Z 为同维向量时 , 绘制以 X,Y,Z 元素为 x,y,z 坐标的三维曲线。2) X,Y,Z 为同维矩阵时,以 X,Y,Z 对应列元素为 x,y,z 坐标分别绘制曲线,曲线条数等于矩阵列数。3) s,s1,s2 的意义与二维情况完全相同,可以缺省。4) (X1,Y1,Z1,’s1’),(X2,Y2,Z2,’s2’) 的结构和作用与 (X,Y,Z,’s’) 相同。
第四章 数据和函数的可视化
MATLAB 编程应用基础
【例 3-13 】三维曲线绘图基本指令演示一: plot3
t=(0:0.02:2)*pi;x=sin(t);y=cos(t);z=cos(2*t);plot3(x,y,z,'b-',x,y,z,'bd')box onlegend(' 链 ','宝石 ')
三维曲线绘图(蓝实线和蓝菱形)在右上角建立图例
第四章 数据和函数的可视化
MATLAB 编程应用基础
4.3 三维曲线绘图4.3.2 三维网线图和曲面图
plot3只能绘制单参数的三维曲线图,而三维网线图和曲面图则比较复杂,主要表现于绘图数据的准备,图形的色彩、明暗、光照和视点处理。1. 数据准备 画函数 z=f(x,y) 所代表的三维空间曲面,需要做以下数据准备:
a) 确定自变量 x,y的取值范围和取值间隔。 x=x1:dx:x2;
y=y1:dy:y2
第四章 数据和函数的可视化
MATLAB 编程应用基础
4.3.2 三维网线图和曲面图1. 数据准备
b) 构成 xy平面上的自变量“格点”阵 。 [X,Y]=meshgrid(x,y)
c) 计 算 在自变 量 采 样“格点”上的函数值,即 Z=f(X,Y)
【说明】 X 由 x 按行复制而成,其行数为 y 元素的个数; Y 由 y 按列复制而成,其列数为 x元素的个数。
x=-4:4y=0:4
第四章 数据和函数的可视化
MATLAB 编程应用基础
4.3 三维曲线绘图4.3.2 三维网线图和曲面图
2. 网线、曲面图基本指令格式a) 网线图
mesh(Z) 以 Z 矩阵列、行下标为 x , y轴自变量,画网线图 . mesh(X,Y,Z) 最常用的网线图调用格式。 mesh(X,Y,Z,C) 最完整的调用格式,画由 C 指定用色的网线图。
【说明 】a) 在最完整调用格式中,四个输入宗量都是维数相同的矩阵。 X
、 Y 是自变量“格点”矩阵, Z 是格点上函数矩阵; C 是指定各点用色的矩阵。 C 缺省时,默认用色矩阵为 Z 。b) 单输入宗量格式时, Z 矩阵列下标为 x 轴的“自变量”; Z 的行下标为 y 轴“自变量”。
第四章 数据和函数的可视化
MATLAB 编程应用基础
【例 3-14a 】三维网线绘图指令演示: mesh
clf,x=-4:4;y=x;[X,Y]=meshgrid(x,y)Z=X.^2+Y.^2;mesh(X,Y,Z);colormap(cool)xlabel('X'),ylabel('y'),zlabel('z')
将 mesh(X,Y,Z) 改为mesh(Z) ,其网线图如左图所示(注意 X 、 Y )坐标的变化。
第四章 数据和函数的可视化
MATLAB 编程应用基础
4.3.2 三维网线图和曲面图2. 网线、曲面图基本指令格式
b) 曲面图 surf(Z) 以 Z 矩阵列、行下标为 x,y 轴自变量,画曲面图。 surf(X,Y,Z) 最常用的曲面图调用格式。 surf(X,Y,Z,C) 最完整的调用格式,画由 C 指定用色的曲面图。有关调用的说明同 mesh 指令。【例 3-14b 】三维曲面绘图指令演示:
surf
x=-4:4;y=x;[X,Y]=meshgrid(x,y);Z=X.^2+Y.^2;surf(X,Y,Z); 画三维曲面图
第四章 数据和函数的可视化
MATLAB 编程应用基础
x=-4:4;y=x;[X,Y]=meshgrid(x,y);Z=X.^2+Y.^2; subplot(1,3,1),surf(X,Y,Z);subplot(1,3,2),mesh(X,Y,Z);subplot(1,3,3),plot3(x,y,x.^2+y.^2),box on
绘曲面图绘网线图绘曲线图
【例 3-14 】网线、曲面、曲线图比较 :
第四章 数据和函数的可视化
MATLAB 编程应用基础
4.3 三维曲线绘图4.3.2 三维网线图和曲面图
3. 图形的透视 曲面图 MATLAB 在采用缺省设置画 mesh 图形时,对叠压在后面的图形采取了消隐措施。采用如下指令可控制消隐:
hidden off 透视被叠压的图形 hidden on 消隐被叠压的图形
% 【例 3-15 】透视演示clf,[x,y]=meshgrid(-3:0.1:3,-2:0.1:2);z=(x.^2+2*x).*exp(-x.^2-y.^2-x.*y);subplot(1,2,1),mesh(x,y,z),axis([-3,3,-2,2,-0.5,1.0]) hidden offsubplot(1,2,2),mesh(x,y,z)hidden onaxis([-3,3,-2,2,-0.5,1.0])
% 透视% 不透视
第四章 数据和函数的可视化
MATLAB 编程应用基础
透视 不透视
第四章 数据和函数的可视化
MATLAB 编程应用基础
图形透视例子% 【例 3-1 6】透视演示和各种画图工具应用[X0,Y0,Z0]=sphere(30);X=2*X0;Y=2*Y0;Z=2*Z0;surf(X0,Y0,Z0);shading interphold on,mesh(X,Y,Z),colormap(hot),hold offhidden offaxis equal,axis off
% 透视% 不透视
第四章 数据和函数的可视化
MATLAB 编程应用基础
4.4 图形窗功能简介 图形窗除了用于显示图形,还可对所显示的图形进行编辑。下图为图形窗工具条上 MATLAB所特有的七个按键,它们用来对图形进行交互操作。
图形对象编辑
添加直线
添加文字添加箭头 放大
缩小三维图形旋转
第四章 数据和函数的可视化
MATLAB 编程应用基础
下图中左图是图形窗里的原始图形,右图是经过图形窗编辑后的图形。
第四章 数据和函数的可视化
MATLAB 编程应用基础
练 习1. 命令窗口中,键入: demo ,出现MATLAB 的 demo演示窗口,然后选择: MATLAB 下的 Graphics ,依次选取其中的 Overview of Features (playback) 、 2-D
Plots 、 3-D Plots 两个示例,了解 MATLAB 有关绘图的操作。2. 自行上机把这次课上例子练习一下