MATLAB的图视化功能.docx
- 文档编号:16116399
- 上传时间:2023-07-10
- 格式:DOCX
- 页数:15
- 大小:23.62KB
MATLAB的图视化功能.docx
《MATLAB的图视化功能.docx》由会员分享,可在线阅读,更多相关《MATLAB的图视化功能.docx(15页珍藏版)》请在冰点文库上搜索。
MATLAB的图视化功能
第四章MATLAB的图视化功能
1.MATLAB的图视化概论
数据图视化能使人们用视觉器官直接感受到数据的许多内在本质。
因此,数据可视化是人们研究科学、认识世界所不可缺少的手段。
MATLAB不仅数值计算方面是一个优秀的科技应用软件,在数据可视化方面也具有上佳表现。
MATLAB具有二维、三维乃至四维的图形表现能力。
可以从线型、边界面、色彩、渲染、光线、视角等方面把数据的特征表现出来。
MATLAB的图视化功能是建立在一组“图形对象”的基础之上的。
“图形对象”的核心是图形的句柄(GranhicsHandle)操作。
MATLAB的有两个层次的绘图指令:
(1)底层(Low-leve)绘图指令:
是直接对句柄进行操作。
底层绘图指令控制和表现数据图形的能力比高层绘图指令强。
特点是灵活多变,较难掌握。
(2)高层(High-level)绘图指令:
建立在底层指令上的绘图指令。
最常用的是高层绘图指令。
高层绘图指令简单明了容易掌握,本章介绍高层绘图指令。
本章内容按“前易后难”的原则安排。
最常用的二个绘图指令是:
plot;mesh
2.二维图形
(1)plot函数
以下例子用来体会plot的基本的绘图原理。
例:
绘向量得折线图:
holdon
x=[2.3,4.3,3,4,4.9,1.5,2.8,4.6,5.5];
plot(x)
plot(x,'ro')
注1:
plot绘图的基本素材是二维点组(x
y
)(1=1,2,….n)。
二维点组(x
y
)(1=1,2,….n)的定义形式:
*1)x=[2.3,4.3,3,4,4.9,1.5,2.8,4.6,5.5];
*2)y=0:
0.1:
5
这种定义方法,默认横坐标是自然数(1,2,3,4…..)
*3)t=0:
pi/100:
2*pi
x=sin(t)
*4)x=[1.5,2.3,2.8,3,4,4.3,4.6,4.9,5.5];
y=x.^2
这种定义方法,要注意自变量保持升序。
自变量与应变量的体积的一致。
注2:
plot绘图的基本原理是依(x
y
)(1=1,2,….n)排列顺序用直线连接。
曲线光滑与否与点数相关。
holdoff
t=0:
pi/3:
2*pi;
x=sin(t);
plot(t,x,'r-')
holdon
t=0:
pi/5:
2*pi;
x=sin(t);
plot(t,x,'b-')
(1)坐标系定制
用于对坐标轴进行管理与控制,如刻度,外观,文字说明等
*1)坐标轴定制指令(axis)
'axis'用于对坐标轴刻度进行管理与控制。
指令形式与作用说明如下:
AXIS([XMINXMAXYMINYMAX])设置x-andy-axes刻度。
AXIS([XMINXMAXYMINYMAXZMINZMAX])设置x-andy-axes和z-axes刻度。
V=AXIS返回当前图形行向量的刻度设置[XMINXMAXYMINYMAX]或([XMINXMAXYMINYMAXZMINZMAX])。
AXISAUTO返回刻度设置的系统默认值
AXISTIGHT依数据设置刻度
AXISIJ设置坐标轴的原点在左上角
AXISXY设置坐标轴的原点在左下角
AXISEQUAL设置坐标轴的比例因子相等。
AXISIMAGE
AXISSQUARE
AXISNORMAL
AXISVIS3D
AXISOFF
AXISON
例:
XMIN=1;
XMAX=10;
YMIN=10;
YMAX=100;
AXIS([XMINXMAXYMINYMAX])
plot([1,50,3,60,5,20,3])
*2)其它坐标系:
polar
例1:
polar(THETA,RHO)
t=0:
0.1:
2*pi;
r=t;
polar(t,r)
例2:
对数-对数
t=0:
0.1:
2*pi;
r=t;
semilogx(t,r)
(2)
(3)图视效果强化
例:
加入格栅;坐标轴标志;文本说明等
clf;holdoff
t=linspace(0,pi*3,30);
x=sin(t);
holdon
y=cos(t);
plot(t,x,'r-',t,y,'g-')
grid%加入格栅
xlabel('x轴')
ylabel('y轴')
title('正弦与余弦曲线')
text(1,0,'正弦')%text(x,y,'正弦')
text(3,0,'余弦')
legend('sin(x)','cos(x)',3)
%LEGEND('string',Pos)placesthelegendinthespecified,
%0=Automatic"best"placement(leastconflictwithdata)
%1=Upperright-handcorner(default)
%2=Upperleft-handcorner
%3=Lowerleft-handcorner
%4=Lowerright-handcorner
%-1=Totherightoftheplot
%按鼠表leftmousebutton拖legend到指定的位置
(2)子图
clf;holdoff
t=linspace(0,pi*3,30);
x=sin(exp(t));
subplot(2,2,2)%(n,m,p(0
plot(t,x,'r-')
y=exp(sin(t));
subplot(2,2,3)
plot(t,y,'g-')
(3)特殊二维图形
bar
直方图
loglog
双对数坐标曲线
compass
原点出发的复数向量图(罗盘图)
pcolor
伪彩图
contour
在x-y平面上绘制等位线图
polar
极坐标曲线
errorbar
误差棒棒图
PlOt
直角坐标二维曲线
ezpolt
符号函数二维曲线
quiver
矢量场图
feather
沿X一轴分布的复数向量图(羽毛图)
rose
统计频率数扇块图
fplot
数值函数二维曲线
semilogx
X一轴对教坐标曲线
fill
平面多边形填色
semilogy
y一轴对教坐标曲线
gplot
绘拓扑图
stem
火柴杆国
hist
统计频率数直方图
stairs
阶梯图
例:
误差图(errorbar)
clf;x=0:
0.1:
4;
y=zeros(size(x));e=rand(size(x));
yu=y+e;yd=y-e;
errorbar(x,y,e)
holdon
plot(x,yu,'r-');plot(x,yd,'r-');
(3)绘图工具
mmaxespropvalue…修改绘图坐标轴的属性
mmcxy(or)xy—mmcxy显示图上鼠标的x-y坐标
mmdrawpropvalue…在图上画直线
rnmfill(x,y,z,c,lb,ub)填充两条曲线间区域
mmgetxy(N)使用鼠标获取x-y坐标
mmlinepropvalue…修改所画线条的属性
mmtile平铺多图形窗口
mmtext('optionaltext')在图上放置或拖曳文本
mrnzoom用橡皮框缩放坐标轴
mmzapobject使用鼠标删除文本,线型或坐标轴
mmfontpropvalue修改文本字体属性
例:
clf;x=0:
0.1:
4;
y=zeros(size(x));e=rand(size(x));
yu=y+e;yd=y-e;
errorbar(x,y,e)
holdon
plot(x,yu,'r-');plot(x,yd,'r-');
yu
(1)=0;yu(41)=0;
fill(x,yu,'r');
yd
(1)=0;yd(41)=0;
fill(x,yd,'g');
3.三维图形
(1)plot3(三维直线函数)
以下例子用来体会plot3的基本的绘图原理。
例:
绘参数方程x=t;y=sin(t);z=cos(t)的空间曲线
clf
t=0:
0.05:
100;
x=t;y=sin(t);z=sin(2*t);
plot3(x,y,z,'b:
')
例:
空间划线:
clf
t=0:
0.1:
10;x=t;
y=0*ones(size(x));z=sin(t);
plot3(x,y,z,'r')
holdon
z=0*ones(size(x));
y=sin(t);
plot3(x,y,z,'g')
xlabel('x');ylabel('y');zlabel('z');
(2)三维曲面网格图
例1:
划马鞍面:
clf
x=-4:
0.5:
4;
y=-4:
0.5:
4;
[U,V]=meshgrid(x,y);
Z=-U.^4+V.^4-U.^2-V.^2-2*U*V;
mesh(Z);
xlabel('x');
ylabel('y');
zlabel('z');
注1:
meshgrid的含义,绘图的基础是网格,一个二元系矩阵[(x
y
)]
holdoff
a=ones(9);
a1=2*ones(5);
a2=3*ones
(2);
a(3:
7,3:
7)=a1;
a(5:
6,5:
6)=a2;
meshc(a)
例二:
peakS函数的图形:
peakS函数的表达式
z=3*(1-x).^2.*exp(-(x.^2)-(y+1).^2)
-10*(x/5-x.^3-y.^5).*exp(-x.^2-y.^2)
-1/3*exp(-(x+1).^2-y.^2)
clf;[x,y,z]=peaks(20);p=peaks(20);
subplot(2,2,1);mesh(x,y,z)
subplot(2,2,2);meshz(y,x,z)
subplot(2,2,3);meshc(p)
subplot(2,2,4);waterfall(p)
注1:
[x,y,z]=peaks(20):
为变换角度带来方便。
见二图。
p=peaks(20):
默认x,y,z的顺序给p赋值。
注2:
mesh;meshz;meshc;waterfall,表现上有区别。
注3:
peaks是演示函数。
MATLAB中有许多不同的演示函数,与演示程序(**demo.m)结合在一起。
如peaks图形演示函数
banane优化演示函数
(3)色彩与效果
*1)mesh;SURF;SURFC,SURFL比较:
变更色调(由暖到冷,默认红到兰)的变化方向
shading:
涂色方式
clf;x=-1.5:
0.2:
1.5;y=-1:
0.2:
1;
[X,Y]=meshgrid(x,y);
p=sqrt(4-X.^2/9-Y.^2/4);
subplot(3,2,1);mesh(p);%有网格格子图,色调方向:
有上到下
subplot(3,2,2);surf(p);%默认的方向:
色调方向:
有上到下
subplot(3,2,3);surfc(p);%带登高线;色调方向:
有上到下
subplot(3,2,4);surfl(p);%色调方向:
沿y轴方向
shadinginterp;%平滑涂色图,无格线
subplot(3,2,5);surfl(p)
shadingfaceted;%有网格涂色格子图,有格线;
subplot(3,2,6);surfl(p)
shadingflat;%有网格涂色格子图,无格线;
*2)SURFL的z-参数。
看z-参数的确定平滑涂色效果(定义变化方向)surfl(p,z);z=(n1,n2,n3)。
clf;
x=-0.5:
0.3:
2.5;y=-0.5:
0.3:
2;
[X,Y]=meshgrid(x,y);
p=(4+X.^2/9+Y.^2/4);;
%cm=[100;010;001];
%colormap(cm)
subplot(2,2,1);surfl(p,[1,0,0])
subplot(2,2,2);surfl(p,[0,1,0])
subplot(2,2,3);surfl(p,[0,0,1])
subplot(2,2,4);surfl(p,[1,1,0])
(4)辅助图视效果
*1)视角定义view(az,el)
clf;x=-1.5:
0.2:
1.5;y=-1:
0.2:
1;
[X,Y]=meshgrid(x,y);
p=sqrt(4-X.^2/9-Y.^2/4);
subplot(2,2,1);surfl(p);view(30,30)
shadinginterp
subplot(2,2,2);surfl(p);view(90,10)
shadinginterp
subplot(2,2,3);surfl(p);view(-10,-10)
shadinginterp
subplot(2,2,4);surfl(p);view(140,60)
shadinginterp
*2)surfl光照模式与光照角度设置,surfl(x,y,z,d,s,k)指令中s与k参数
d:
见(3)
s:
确定光照角度;z=(sx,sy,sz);默认光照角度是观察角逆时针方向45度
k:
:
光照模式:
确定强度
ka:
背景光kd:
漫射光ks:
定向光spread:
扩散光
例:
clf;x=-1.5:
0.2:
1.5;y=-1:
0.2:
1;
[X,Y]=meshgrid(x,y);
Z=sqrt(4-X.^2/9-Y.^2/4);
view(45,45)
subplot(2,2,1);surfl(X,Y,Z,[0,45],[.1.6.410]);
shadinginterp
subplot(2,2,2);surfl(X,Y,Z,[20,45],[.3.6.410]);
shadinginterp
subplot(2,2,3);surfl(X,Y,Z,[40,45],[.6.6.410]);
shadinginterp
subplot(2,2,4);surfl(X,Y,Z,[60,45],[.9.6.410]);
shadinginterp
*3)图视放大zoomon;zoomoff;zoom
*鼠标点击变焦(左键放大;右键盘缩小)
*鼠标拖拉变焦
t=-16:
0.1:
16;
x=sin(t.*10).*(t.^2);
plot(t,x,'r-')
zoomon
4.超维图形表达
(1)三维色彩表达(色轴;图象的色彩维)
clf
a=ones(20);
a1=2*ones(13);
a2=3*ones(7);
a3=4*ones
(2);
a(4:
16,4:
16)=a1;
a(7:
13,7:
13)=a2;
a(10:
11,10:
11)=a3;
subplot(2,1,1)
meshc(a)
subplot(2,1,2)
pcolor(a)
colorbar('horiz')
colormap(hsv)
%shadinginterp
(2)四维色彩表达(色轴;图象的色彩维)
clf
x=-5:
0.1:
5;
y=-5:
0.25:
5;
z=-5:
0.25:
5;
n=length(x);
[X,Y,Z]=meshgrid(x,y,z);
V=(-X.^2-Y.^2-Z.^2);
xi=[-4,-2,0,2,4];
yi=0.5;
zi=-0.5;
subplot(2,1,1);
slice(x,y,z,V,xi,yi,zi);
colorbar('horiz');
view([45,45]);
shadinginterp
xi=[0];
subplot(2,1,2);
slice(x,y,z,V,xi,yi,zi);
view([30,45]);
shadinginterp
(3)色彩变换spinmap
5.句柄图形
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 图视化 功能