6MATLAB图示化.docx
- 文档编号:24396286
- 上传时间:2023-05-27
- 格式:DOCX
- 页数:33
- 大小:296.64KB
6MATLAB图示化.docx
《6MATLAB图示化.docx》由会员分享,可在线阅读,更多相关《6MATLAB图示化.docx(33页珍藏版)》请在冰豆网上搜索。
6MATLAB图示化
MATLAB的图视化功能
1.MATLAB的图视化概论
数据可视化是人们认识世界不可缺少的手段、科学与工程研究大量依赖于可视化技术。
数据图视化能使人们用视觉器官直接地、形象地感受到数据的许多内在本质。
MATLAB为用户提供了大量的丰富的图形功能,编制了大量的数据可视化的指令,并配备了许多高级图形案例。
利用这些功能、指令和案例,用户可以方便地实现数据的可视演示,表达数据的特性。
(1)常用的数据可视化绘图指令,称为高层(High-level)绘图指令,如:
(1)直角(极)坐标系中绘制直线、曲线、曲面、条形图、柱状图、轮廓线、网格图;
(2)图形颜色、阴影、视角、光照角控制;(3)图形显示外观、图形标注、标题、标签;(4)图形放大、处理等等。
高层(High-level)绘图指令建立在底层指令上的,指令简单明了容易掌握,能满足大部分的科学与工程的计算需求,是应该掌握并熟练应用的内容。
(2)为满足特别专业的数据可视化或影象处理,MATLAB提供了涉及处理图形低层属性的句柄图形指令,叫做低层(Low-level)绘图指令。
句柄图形是所有高级图形函数的基础,句柄图形可以直接调用,也可以在用户创建的M-文件中调用。
利用句柄图形(HandleGraphics)指令可以获得操纵图形对象属性的方法,更精确地控制MATLAB图形显示方式,开发用户自定义的图形命令,甚至构建面向对象的专业化的图形系统。
高层(High-level)绘图指令大多数是由底层绘图指令构建起来的。
低层绘图指令控制和表现数据图形的能力比高层绘图指令强、特点是灵活多变,较难掌握。
适合开发专业的数据可视化系统或影象处理系统
MATLAB在数据可视化方面也具有上好表现,联合其他的强大功能和上好表现,共同支撑着MATLAB世界级的优秀科技计算软件的地位。
2.二维图形
(1)plot函数
plot绘图的基本素材是二维点组(x
y
)(i=1,2,….n)。
二维点组(x
y
)(i=1,2,….n)的定义形式由如:
1)x=[2.3,4.3,3,4,4.9,1.5,2.8,4.6,5.5]或y=0:
0.1:
5。
这种定义方法,默认横坐标是自然数(1,2,3,4…..)
2)t=0:
pi/100:
2*pi;x=sin(t),二维点组(x
y
)(i=1,2,….n)的定义形式
以下例子用来体会plot的基本的绘图原理。
例1:
绘向量得折线图:
(用法1)
h=figure;%定义一个新的图形窗,返回此图形窗的柄号。
%holdon;%图形保持开关。
x=[2.3,4.3,3,4,4.9,1.5,2.8,4.6,5.5];
plot(x)
plot(x,'-ro')
例2:
绘x=sin(t)图。
曲线光滑与否与点数相关。
holdoff
t=0:
pi/3:
2*pi;
x=sin(t);
plot(t,x,'r-')
holdon
t=0:
pi/100:
2*pi;
x=sin(t);
plot(t,x,'b-')
例3:
本例有较多的线形、标注属性定义。
u=0:
0.2:
6;
y=sin(u);
x=plot(u,y,'marker','square','markersize',6,'markeredgecolor',[0,1,1],'markerfacecolor',[1,0,1],'linestyle','-','color','r','linewidth',2);
(2)图形辅助表达
1).坐标系定制指令(axis)
用于对坐标轴进行管理与控制,如刻度,外观,文字说明等
'axis'用于对坐标轴刻度进行管理与控制。
指令形式与作用说明如下:
axis([xminxmaxyminymax])设置x-andy-axes刻度。
axis([xminxmaxyminymaxzminzmax])设置x-andy-axes和z-axes刻度。
v=axis返回当前图形行向量的刻度设置[xminxmaxyminymax]或([xminxmaxyminymaxzminzmax])。
axisauto返回刻度设置的系统默认值
axistight依数据设置刻度
axisij设置坐标轴的原点在左上角
axisxy设置坐标轴的原点在左下角等等。
2)线形、点形、颜色表达
在plot划线时,可以同时设置线形、点形、颜色。
以上例子表明了各种不同的设置方法。
线形、点形、颜色可选项如下表。
颜色可由三色基[n1,n2,n3]表达:
[1,0,0]表示红色;[0,1,0]表示绿色;[0,0,1]表示绿色;[1,1,1]表示白色;[1,1,0]表示黄色;[1,0,1]表示粉红色;[0,1,1]表示天蓝色;
语法:
plot(x,y,'colorpointtypelinetype')
颜色
点形
线形
y
yellow
黄色
.
point
点
-
solid
实线
m
magenta
紫色,洋红
o
circle
圈
:
dotted
点线
c
cyan
蓝绿色,青色
x
x-mark
x记号
-.
dashdot
点划线
r
red
红色
+
plus
加好
--
dashed
虚线
g
green
绿色
*
star
星号
b
blue
蓝色
s
square
方形
w
white
白色
d
diamond
钻石形
k
black
黑色
v
triangle(down)
下三角
^
triangle(up)
上三角
<
triangle(left)
左三角
>
triangle(right)
右三角
p
pentagram
五角星
h
hexagram
六角星
3)题目、标签、文字说明、图例、加入格栅等见下表
标签有xlabel、label、zlabel,用于对轴等标注。
文字说明有text、gtext。
text不可人工干预,位置由指令给定。
gtext可人工干预,word下使用无效。
图例legend,依次对画的线加图例说明。
title
题目
title('text','property1',propertyvalue1……)
xlabel、label、zlabel
标签
xlabel('text','property1',propertyvalue1……)
text、gtext
说明
text(x,y,z,'string')
gtext({'Firstline','Secondline'},'FontName','Times','Fontsize',12)
grid
legend
图例
legend(V,'Carrots','Peas','Peppers','GreenBeans','Cucumbers','Eggplant')
例:
关于title,xlabel等。
参数'\it{图形题目}',\it是运算指令,表示写{}内的内容。
text必须给位置,可以加字体等选项。
x=0:
0.1:
2*pi;
y=sin(x+4);
clf;axistight;
plot(x,y,'marker','square','markersize',6,'markeredgecolor','y','markerfacecolor',[.20.2])
title('aaa','fontsize',16)
xlabel('\it{X-轴注记}','fontsize',12)
text(2,0,0,'sine','Fontsize',12)
grid
例:
legend默认的是依图形的句柄大小,对应给出的图例文字加说明,见第一例。
可以将图形的句柄构成向量,对应给出的图例文字加说明。
语法为legend('string','string',Pos)。
Pos位置参数,0-自动优选;1-右上角;2-左上角;3-左下角;4-右下角,-1-图左。
按鼠表右键,可拖legend到指定的位置。
见第二例
第一例
clf;
x=0:
.2:
12;
plot(x,sin(x),x,sin(2+x),x,sin(3+x));
legend('First','Second','Third',-1)
第二例:
画一10*5阵的stacked图
b=bar(rand(10,5),'stacked');colormap(summer);
holdon
x=plot(1:
10,5*rand(10,1),'marker','square','markersize',12,'markeredgecolor','y','markerfacecolor',[.60.6],'linestyle','-','color','r','linewidth',2);
holdoff
legend([x,b],'Carrots','Peas','Peppers','GreenBeans','Cucumbers','Eggplant')
4)极座标:
polar和对数-对数:
loglog、semilogx、semilogy.
例:
线性方程r=t+4在不同座标下的形态
t=0:
0.1:
2*pi;
r=t+4;
clf
subplot(2,2,1)
loglog(t,r)
subplot(2,2,2)
semilogx(t,r)
subplot(2,2,3)
semilogy(t,r)
subplot(2,2,4)
polar(t,r)
例:
u=0:
0.2:
6;
y=sin(u);
clf
subplot(2,2,1)
loglog(u,y,'marker','square','markersize',6,'markeredgecolor',[0,1,1],'markerfacecolor',[1,0,1],'linestyle','-','color','r','linewidth',2);
subplot(2,2,2)
semilogx(u,y,'marker','square','markersize',6,'markeredgecolor',[0,1,1],'markerfacecolor',[1,0,1],'linestyle','-','color','r','linewidth',2);
subplot(2,2,3)
semilogy(u,y,'marker','square','markersize',6,'markeredgecolor',[0,1,1],'markerfacecolor',[1,0,1],'linestyle','-','color','r','linewidth',2);
subplot(2,2,4)
polar(u,y,'-^b')
5)特种图
特种图如下表
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
阶梯图
clf
t=1:
10;
y=sin(t);
subplot(2,2,1)
b=bar(t,y,'stacked');%绘制随机条图rand(10)
subplot(2,2,2)
b=stairs(t,sin(t));
subplot(2,2,3)
errorbar(t,y)
subplot(2,2,4)
colormap(summer)
h=[1,2,3,4];
b=stem(h,h);;
holdoff
6)绘图工具
重要的绘图指令
figure
(1)
clf
t=[-2:
0.1:
2];
x=[t];%2-Dlinesasribbonsin3-D
y=[t].^2;
z=[t].^2;
line(x,y,z)
gridon
view(-10,30)
%hand.m
%手动绘制连线
clf;
gridon
[x,y]=GETPTS;%得点并标注
line(x,y)
%GETRECT,GETLINE
%RECT=GETRECT
(1)
%[x,y]=GETLINE
(1);%得线并标注
%plot(x,y)
%[x,y,button]=ginput(n),在matlab上用[x,y,bt]=GINPUT(5);
x=1:
0.1:
6;%2-Dlinesasribbonsin3-D
y=sin(x);
width=3;
ribbon(x,y,width)
%spline:
数据插补,光滑
x=0:
10;y=[cos(x);sin(x)];
xx=0:
.25:
10;
yy=spline(x,y,xx);
plot(x,y,'o',xx,yy)
%ppval:
分段数据插补,光滑
t=8;
xs=[0:
t];
s=sin(xs);
xc=[t:
-1:
0];
c=cos(xc);
circle=spline(0:
t,[s;c]);
xx=0:
.1:
t;
cc=ppval(circle,xx);
subplot(2,1,1)
plot(xx,cc(1,:
),xx,cc(2,:
))
subplot(2,1,2)
plot(cc(1,:
),cc(2,:
))
axisequal
clf
%interp1分段数据插补,直线
x=0:
10;y=[cos(x)];
xi=[0:
.25:
10];
yi=interp1(x,y,xi);
plot(x,y,'o',xi,yi)
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
)]
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)四维色彩表达(色轴;图象的色彩维)
例:
由
定义了一个三维场(比如温度场),给出x轴方向的五个切片,位置由-4,-2,0,2,4给定,y轴方向切片定于0.5,z轴方向切片定于-0.5。
x,y,z,V是函数空间点数组,xi,yi,zi是切片位置数组,slice(x,y,z,V,xi,yi,zi)划出全部切片
H=SLICE(...,'method'):
'method'参数可取('linear','cubic',or'nearest')。
clf
x=-5:
0.1:
5;
y=-5:
0.25:
5;
z=-5:
0.25:
5;
n=le
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 图示