数据和函数的可视化.docx

上传人:b****1 文档编号:209962 上传时间:2023-04-28 格式:DOCX 页数:27 大小:206.47KB
下载 相关 举报
数据和函数的可视化.docx_第1页
第1页 / 共27页
数据和函数的可视化.docx_第2页
第2页 / 共27页
数据和函数的可视化.docx_第3页
第3页 / 共27页
数据和函数的可视化.docx_第4页
第4页 / 共27页
数据和函数的可视化.docx_第5页
第5页 / 共27页
数据和函数的可视化.docx_第6页
第6页 / 共27页
数据和函数的可视化.docx_第7页
第7页 / 共27页
数据和函数的可视化.docx_第8页
第8页 / 共27页
数据和函数的可视化.docx_第9页
第9页 / 共27页
数据和函数的可视化.docx_第10页
第10页 / 共27页
数据和函数的可视化.docx_第11页
第11页 / 共27页
数据和函数的可视化.docx_第12页
第12页 / 共27页
数据和函数的可视化.docx_第13页
第13页 / 共27页
数据和函数的可视化.docx_第14页
第14页 / 共27页
数据和函数的可视化.docx_第15页
第15页 / 共27页
数据和函数的可视化.docx_第16页
第16页 / 共27页
数据和函数的可视化.docx_第17页
第17页 / 共27页
数据和函数的可视化.docx_第18页
第18页 / 共27页
数据和函数的可视化.docx_第19页
第19页 / 共27页
数据和函数的可视化.docx_第20页
第20页 / 共27页
亲,该文档总共27页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

数据和函数的可视化.docx

《数据和函数的可视化.docx》由会员分享,可在线阅读,更多相关《数据和函数的可视化.docx(27页珍藏版)》请在冰点文库上搜索。

数据和函数的可视化.docx

数据和函数的可视化

第5章

数据和函数的可视化

.1引导

.1.1离散数据和离散函数的可视化

【例5.1-1】图形表示离散函数

n=(-10:

10)';%产生一组自变量数据

y=abs(n);%函数的数组算法计算相应点的函数值

plot(n,y,'r.','MarkerSize',20)

axisequal

gridon%画坐标方格

xlabel('n')

图5.1-1离散函数的可视化

.1.2连续函数的可视化

【例5.1-2】用图形表示连续调制波形

t1=(0:

11)/11*pi;%12个采样点偏少

t2=(0:

400)/400*pi;%401个采样点密集

t3=(0:

50)/50*pi;%51个采样点已够

y1=sin(t1).*sin(9*t1);%数组运算

y2=sin(t2).*sin(9*t2);

y3=sin(t3).*sin(9*t3);

subplot(2,2,1),plot(t1,y1,'r.')

axis([0,pi,-1,1]),title('

(1)点过少的离散图形')

subplot(2,2,2),plot(t1,y1,t1,y1,'r.')

axis([0,pi,-1,1]),title('

(2)点过少的连续图形')

subplot(2,2,3),plot(t2,y2,'r.')

axis([0,pi,-1,1]),title('(3)点密集的离散图形')

subplot(2,2,4),plot(t3,y3)

axis([0,pi,-1,1]),title('(4)点足够的连续图形')

图5.1-2连续函数的图形表现方法

【例5.1-3】绘制奇数正多边形及圆。

N=9;%多边形的边数

t=0:

2*pi/N:

2*pi;%递增排列自变量

x=sin(t);y=cos(t);%参数方程

tt=reshape(t,2,(N+1)/2);%把列向量重排成“二维数组”

tt=flipud(tt);%“二维数组”的上下行调换

tt=tt(:

);%变序排列自变量

xx=sin(tt);yy=cos(tt);

subplot(1,2,1),plot(x,y)

title('

(1)正常排序图形'),axisequaloff,shg

subplot(1,2,2),plot(xx,yy)

title('

(2)非正常排序图形'),axisequaloff,shg

.2二维曲线和图形

表5.2-1MATLAB提供的二维图形绘制指令

指令名

含义和功能

指令名

含义和功能

arer

面域图;主用于表现比例、成份

plot

基本二维曲线图形指令

bar

直方图;主用于统计数据

quiver

二维箭头图;主用于场强、流向

compass

射线图;主用于方向和速度

rose

频数扇形图;主用于统计

feather

羽毛图;主用于速度

stairs

阶梯图;主用于采样数据

hist

频数直方图;主用于统计

stem

二维杆图;主用于离散数据

pie

二维饼图;统计数据极坐标形式

.2.1二维曲线绘制的基本指令plot

10一基本调用格式plot(x,y,'s')

这是plot指令的最典型、最基本的调用格式。

该指令的输入量(x,y,'s')称谓平面绘线三元组。

它们分别指定平面曲线的几何位置、点形线型和色彩。

●x,y是长度相同的一维数组。

x,y分别指定采样点的横坐标和纵坐标。

●第三个输入量's'是字符串,用来指定“离散点形”、“连续线型”、“点线色彩”。

●没第三个输入量,plot将使用缺省设置——“蓝色细实线”。

表5.2-1离散数据点形允许设置值

符号

含义

符号

含义

符号

含义

d

菱形符diamond

x

叉字符

^

朝上三角符

h

六角星符hexagram

<

朝左三角符

o

空心圆圈

.

实心黑点

>

朝右三角符

p

五角星符pentagram

+

十字符

v

朝下三角符

s

方块符square

*

米字符

表5.2-2连续线型允许设置值

符号

含义

符号

含义

-

细实线

-.

点划线

:

虚点线

--

虚划线

表5.2-3点线色彩允许设置值

符号

b

g

r

c

m

y

k

w

含义

绿

品红

10二plot的衍生调用格式

(1)单色或默认多色绘制多条曲线

plot(X,Y,'s')用s指定的点形线型色彩绘制多条曲线

plot(X,Y)采用默认的色彩次序用细实线绘制多条曲线

〖说明〗

●当X,Y均为

数组时,将绘制出

条曲线。

每条曲线的几何位置由X,Y对应的列确定。

(2)多三元组绘制多条曲线

plot(X1,Y1,'s1',X2,Y2,'s2',...,Xn,Yn,'sn')

〖说明〗

●该指令输入量由多个“三元组”(Xn,Yn,'sn')组成。

●每个三元组是独立的,它的工作方式与plot(X,Y,'s')完全相同。

(3)单输入量绘线

plot(Y)

〖说明〗

●当Y是一维数组时,则以该数组的下标为横坐标、Y为纵坐标绘制一条曲线。

●当Y二维数组时,则以该数组的“行下标”为横坐标、Y为纵坐标绘制“列数”条曲线。

10三plot的属性可控调用格式

plot(x,y,'s','PropertyName',PropertyValue,…)

〖说明〗

●运用属性名(PropertyName)和属性值(PropertyValue)可以对“线”对象的属性进行设置,使所绘曲线更具个性化。

●MATLAB出于使用频率和方便考虑,采用's'字符串方式设置点形线型及几种常用色彩。

表5.2-4线对象的常用属性名和属性值

含义

属性名

属性值

说明

点、线色彩

Color

,RGB三元组中每个元素可在

取任意值。

●最常用的色彩可通过表5.2-3中的字母表示。

●常用色彩可通过's'设置。

蓝色为默认色彩。

线型

LineStyle

四种线型见表5.2-2

●可通过's'设置。

细实线为默认线型。

线宽

LineWidth

正实数

●默认线宽为0.5

数据点形

Marker

十四种点形见表5.2-1

●可通过's'设置。

点的大小

MarkerSize

正实数

●默认大小为6.0

点边界色彩

MarkerEdgeColor

,RGB三元组中每个元素可在

取任意值。

点域色彩

MarkerFaceColor

,RGB三元组中每个元素可在

取任意值。

【例5.2-1】二维曲线绘图指令演示之一。

clf

t=(0:

pi/50:

2*pi)';%生成(101*1)的列向量

k=0.4:

0.1:

1;%生成(1*7)的行向量

Y=cos(t)*k;%Y是向量?

矩阵?

(101*7)的矩阵

subplot(1,2,1),plot(t,Y,'LineWidth',1.5)

title('Byplot(t,Y)'),xlabel('t')

subplot(1,2,2),plot(Y,'LineWidth',1.5)

title('Byplot(Y)'),xlabel('rowsubscriptofY')

图5.2-1plot(t,Y)与plot(Y)所绘曲线的区别

〖说明〗

【例5.2-2】用图形表示连续调制波形

及其包络线。

t=(0:

pi/100:

pi)';%时间采样列向量<1>

y1=sin(t)*[1,-1];%包络线,(101x2)的矩阵<2>

y2=sin(t).*sin(9*t);

t3=pi*(0:

9)/9;

y3=sin(t3).*sin(9*t3);

plot(t,y1,'r:

',t,y2,'-bo')

holdon

plot(t3,y3,'s','MarkerSize',10,'MarkerEdgeColor',[0,1,0],'MarkerFaceColor',[1,0.8,0])

axis([0,pi,-1,1])

holdoff

%以下指令供读者比较用。

使用时,指令前的%号要去除。

%属性影响该指令中的所有线对象中的离散点。

%plot(t,y1,'r:

',t,y2,'-bo',t3,y3,'s','MarkerSize',10,'MarkerEdgeColor',[0,1,0],'MarkerFaceColor',[1,0.8,0])

.2.2坐标控制和图形标识

10一坐标轴的控制

表5.2-5常用的坐标控制指令

坐标轴控制方式、取向和范围

坐标轴的高宽比

指令

含义

指令

含义

axisauto

使用缺省设置

axisequal

纵、横轴采用等长刻度

axismanual

使当前坐标范围不变

axisfill

在manual方式下起作用,使坐标充满整个绘图区。

axisoff

取消轴背景

axisimage

纵、横轴采用等长刻度,且坐标框紧贴数据范围。

axison

使用轴背景

axisnormal

缺省矩形坐标系

axisij

矩阵式坐标,原点在左上方。

axissquare

产生正方形坐标系

axisxy

普通直角坐标,原点在坐下方。

axistight

把数据范围直接设为坐标范围

axis(V)

V=[x1,x2,y1,y2];

V=[x1,x2,y1,y2,z1,z2];

人工设定坐标范围。

设定值:

二维,4个;三维,6个。

axisvis3d

保持高宽比不变,用于三维旋转时避免图形大小变化。

〖说明〗坐标范围设定向量V中的元素必须服从:

x1

V的元素允许取inf或-inf,那意味着上限或下限是自动产生的,即坐标范围“半自动”确定。

10二分格线和坐标框

grid是否画分格线的双向切换指令(使当前分格线状态翻转)

gridon画出分格线

gridoff不画分格线

box坐标形式在封闭式和开启式之间切换指令

boxon使当前坐标呈封闭形式

boxoff使当前坐标呈开启形式

10三图形标识指令

title(S)书写图名

xlabel(S)横坐标轴名

ylabel(S)纵坐标轴名

legend(S1,S2,...)绘制曲线所用线型、色彩或数据点形图例

text(xt,yt,S)在图面(xt,yt)坐标处书写字符注释

〖说明〗

●legend所画图例的缺省位置在图形窗的右上角。

假如要通过指令改变图例的位置,那末可以通过相应的属性进行控制。

例如legend(S1,S2,'Location','SouthEast')将把图例设置在图形窗的右下角。

10四标识指令中字符的精细控制

【例5.2-5】通过绘制二阶系统阶跃响应,综合演示图形标识。

clf;t=6*pi*(0:

100)/100;

y=1-exp(-0.3*t).*cos(0.7*t);

plot(t,y,'r-','LineWidth',3)

holdon

tt=t(find(abs(y-1)>0.05));ts=max(tt);

plot(ts,0.95,'bo','MarkerSize',10)

holdoff

axis([-inf,6*pi,0.6,inf])

set(gca,'Xtick',[2*pi,4*pi,6*pi],'Ytick',[0.95,1,1.05,max(y)])

set(gca,'XtickLabel',{'2*pi';'4*pi';'6*pi'})

set(gca,'YtickLabel',{'0.95';'1';'1.05';'max(y)'})

gridon

text(13.5,1.2,'\fontsize{12}{\alpha}=0.3')

text(13.5,1.1,'\fontsize{12}{\omega}=0.7')

cell_string{1}='\fontsize{12}\uparrow';

cell_string{2}='\fontsize{16}\fontname{隶书}镇定时间';

cell_string{3}='\fontsize{6}';

cell_string{4}=['\fontsize{14}\rmt_{s}='num2str(ts)];

text(ts,0.85,cell_string,'Color','b','HorizontalAlignment','Center')

title('\fontsize{14}\ity=1-e^{-\alphat}cos{\omegat}')

xlabel('\fontsize{14}\bft\rightarrow')

ylabel('\fontsize{14}\bfy\rightarrow')

.2.3多次叠绘、双纵坐标和多子图

10一多次叠绘

holdon使当前轴及图形保持而不被刷新,接受此后绘制的新曲线。

holdoff使当前轴及图形不再具备不被刷新的性质。

hold当前图形是否具备刷新性质的双向切换开关。

【例5.2-6】利用hold绘制离散信号通过零阶保持器后产生的波形。

t=2*pi*(0:

20)/20;

y=cos(t).*exp(-0.4*t);

stem(t,y,'g','Color','k');

holdon

stairs(t,y,':

r','LineWidth',3)

holdoff

legend('\fontsize{14}\itstem','\fontsize{14}\itstairs')

boxon

10二双纵坐标图

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指定的不同形式的两条曲线。

【例5.2-7】画出函数

和积分

在区间

上的曲线。

clf;dx=0.1;x=0:

dx:

4;y=x.*sin(x);

s=cumtrapz(y)*dx;

a=plotyy(x,y,x,s,'stem','plot');

text(0.5,1.5,'\fontsize{14}\ity=xsinx')

sint='{\fontsize{16}\int_{\fontsize{8}0}^{x}}';

ss=['\fontsize{14}\its=',sint,'\fontsize{14}\itxsinxdx'];

text(2.5,3.5,ss)

set(get(a

(1),'Ylabel'),'String','被积函数\ity=xsinx')

set(get(a

(2),'Ylabel'),'String',ss)

xlabel('x')

10三多子图

subplot(m,n,k)使

幅子图中的第

幅成为当前图

subplot('position',[leftbottomwidthheight])

在指定位置上开辟子图,并成为当前图。

【例5.2-8】演示subplot指令对图形窗的分割(图5.2-8)。

clf;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.1,0.6,0.40])

plot(t,y12,'b-',t,[y1,-y1],'r:

')

axis([0,pi,-1,1])

.2.4获取二维图形数据的指令ginput

[x,y]=ginput(n)用鼠标从二维图形上获取n个点的数据坐标(x,y)。

.3三维曲线和曲面

.3.1三维线图指令plot3

plot3(X,Y,Z,'s')用s指定的点形线型色彩绘制曲线

plot3(X1,Y1,Z1,'s1',X2,Y2,Z2,'s2',...)

用s1,s2指定的点形线型色彩绘制多类曲线

〖说明〗

●plot3的使用方法与plot相似。

【例5.3-1】三维曲线绘图。

本例演示:

三维曲线的参数方程;线型、点形和图例。

(图5.3-1)

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')

view([-82,58]),boxon

xlabel('x'),ylabel('y'),zlabel('z')

legend('链','宝石')

图5.3-1宝石项链

.3.2三维曲面/网线图

10一三维曲面/网线可视化的数据准备

画函数

所代表的三维空间曲面,需要做以下数据准备:

(1)确定自变量

的取值范围和取值间隔。

x=x1:

dx:

x2;y=y1:

dy:

y2;

(2)构成xy平面上的自变量“格点”矩阵。

[X,Y]=meshgrid(x,y);

(3)计算在自变量采样“格点”上的函数值,即Z=f(X,Y)。

10二绘制曲面/网线图的基本指令

surf(Z)以Z矩阵列、行下标为

轴自变量,画曲面图。

surf(X,Y,Z)最常用的曲面图调用格式

surf(X,Y,Z,C)最完整调用格式,画由C指定用色的曲面图。

mesh(Z)以Z矩阵列、行下标为

轴自变量,画网线图。

mesh(X,Y,Z)最常用的网线图调用格式

mesh(X,Y,Z,C)最完整调用格式,画由C指定用色的网线图。

【例5.3-2】用曲面图表现函数

clf

x=-4:

4;y=x;%确定自变量的取值范围和采样间隔

[X,Y]=meshgrid(x,y);%x-y平面上的自变量“格点”矩阵

Z=X.^2+Y.^2;%计算格点上的函数值

surf(X,Y,Z);%绘制曲面图

colormap(hot)%采用hot色图

holdon

stem3(X,Y,Z,'bo')%用来表现x-y平面格点,及对应的函数值

holdoff

xlabel('x'),ylabel('y'),zlabel('z')

axis([-5,5,-5,5,0,inf])%设置坐标范围

view([-84,21])%控制视角

.3.3曲面/网线图的精细修饰

10一视角控制view

view([az,el])通过方位角、俯视角设置视点

view([vx,vy,vz])通过直角坐标设置视点

图5.3-3视点设置参数示意

(注意:

有时指令[az0,el0]=view给出的el0数据比真实的俯视角大30度左右。

10二色图colormap

colormap(CM)设置当前图形窗的着色色图为CM

10三浓淡处理shading

shadingoptions图形对象着色的浓淡处理

【例5.3-3】三种浓淡处理方式比较。

clf

x=-4:

4;y=x;

[X,Y]=meshgrid(x,y);

Z=X.^2+Y.^2;

surf(X,Y,Z)

colormap(jet)

subplot(1,3,1),surf(Z),axisoff

subplot(1,3,2),surf(Z),axisoff,shadingflat

subplot(1,3,3),surf(Z),axisoff,shadinginterp

set(gcf,'Color','w')%设置图形窗的底色为白

10四透明度控制alpha

alpha(v)对面、块、象三种图形对象的透明度加以控制

【例5.3-4】半透明的表面图。

clf

surf(peaks)

shadinginterp

alpha(0.5)

colormap(summer)

10五灯光设置light

light('color',option1,'style',option2,'position',option3)灯光设置

10六照明模式lighting

lightingoptions设置照明模式

10七控制光反射的材质指令material

materialoptions使用预定义反射模式

【例5.3-5】灯光、照明、材质指令所表现的图形。

(图5.3-6)

clf;

[X,Y,Z]=sphere(40);

colormap(jet)

subplot(1,2,1),surf(X,Y,Z),axisoff,shadinginterp

light('position',[0-101.5],'style','infinite')

lightingphong

materialshiny

subplot(1,2,2),surf(X,Y,Z,-Z)

axisoff,shadingflat;light;lightingflat

light('position',[-1,-1,-2],'color','y')

light('position',[-1,0.5,1],'style','local','color','w')

set(gcf,'Color','w')%设置图形窗的底色为白

.3.4透视、镂空和裁切

10一图形的透视

hiddenoff透视被叠压的图形

hiddenon消隐被叠压的图形

【例5.3-6】透视演示(图5.3-7)。

[X0,Y0,Z0]=sphere(30);%产生单位球面的三维坐标

X=2*X0;Y=2*Y0;Z=2*Z0;%产生半径为2的球面的三维坐标

surf(X0,Y0,Z0);

shadinginterp

holdon,mesh(X,Y,Z),colormap(hot)

holdoff

%alpha(0),%观察不同

hiddenoff%产生透视效果

axisequal,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2