图形绘制图像
二维图形
plot(Y)
:
- 若Y是向量,绘制的图形以向量索引为横坐标值,以向量元素的值为纵坐标。
- Y是实数矩阵,绘制Y的列向量对其坐标索引的图形。
- Y是复向量,绘制的图形以实部为横坐标值,虚部为纵坐标值。
y1 = sin((1:100)/100*2*pi);
y2 = cos((1:100)/100*2*pi);
y3 = [y1' y2'];
y4 = y1' + y2'*i;
subplot(221);plot(y1);
subplot(222);plot(y2);
subplot(223);plot(y3);
subplot(224);plot(y4);
plot(X,Y)
:
- X,Y为n维向量时,绘制向量Y对向量X的图形,X为横坐标,Y为纵坐标。
- X为n维向量,Y为mn或n\m维矩阵时,在同一图形内绘制m条不同颜色的连线。
- X,Y为mn或n\m维矩阵时,绘制n条曲线,以X矩阵第i列分量为横坐标,以Y矩阵第i列分量为纵坐标。
x1 = (1:100)/100*pi*2;
x2 = ((1:100) - 20)/100*pi*2;
x3 = [x1' x2'];
y1 = sin((1:100)/100*pi*2);
y2 = cos((1:100)/100*pi*2);
y3 = [y1' y2'];
subplot(221);plot(x1,y1);
subplot(222);plot(x2,y3);
subplot(223);plot(x3,y3);
subplot(224);plot(x1,y2,x3,0.5*y3);axis tight % 绘制通用调用形式
plot(X,Y,linespec)
:
Linespec
属性设置字符,可设置线型、标识和颜色。
x = (1:100)/100*2*pi;
y = sin(x);
subplot(221);plot(x,y,'k.');
subplot(222);plot(x,y,'-.r');
subplot(223);plot(x,y,'--bx');
subplot(224);plot(x,y,':go');
线型S:
字符 | 标识 | 线型 | 标识 |
---|---|---|---|
‘-‘ | 实现(默认) | ‘–’ | 虚线 |
‘:’ | 点线 | ‘-.’ | 点画线 |
颜色C:
字符 | 标识 | 字符 | 标识 |
---|---|---|---|
r | 红色 | g | 绿色 |
b | 蓝色 | c | 蓝绿色 |
m | 品红色 | y | 黄色 |
k | 黑色 | w | 白色 |
标识M:
字符 | 标识 | 字符 | 标识 |
---|---|---|---|
‘+’ | 加号 | ‘o’ | 圆圈 |
‘*’ | 星号 | ‘.’ | 点 |
‘x’ | 叉行 | ‘s’ | 方形 |
‘d’ | 菱形 | ‘^’ | 上向三角 |
‘v’ | 下向三角 | ‘>’ | 右向三角 |
‘<’ | 左向三角 | ‘p’ | 五角星 |
‘h’ | 六芒星 |
设置属性时,可在线型、标识和颜色中各取最多的一种进行设置。
t = 0:pi/20:2*pi;
plot(t,sin(t),'-.r*');
hold on;plot(t,sin(t-pi/2),'--mo');
plot(t,sin(t-pi),':bs');hold off;
图形叠绘
有时候用户需要将不同的数据绘制在一张图上,这时就需要进行叠绘了,在保持原有图形的情况下绘制新的图形。
hold
命令有三种用法:
- hold on:使当前轴及图形保存下来,而不被覆盖,并接受即将绘制的新曲线。
- hold off:不保留当前轴及图形,绘制新的曲线后,原图被覆盖。
- hold:hold on 与 hold off 语句切换。
子图绘制
subplot(m,n,p)
:将在(m,n)幅子图中的第p幅图作为当前曲线的绘制图。
非对称子图绘制示例:
x = (1:100)/100;
y = exp(x);
subplot(2,2,[1 3]);plot(x,y);
subplot(222);subplot(224);
交互绘图
交互绘图指使用鼠标进行绘图。
ginput
命令:调用格式[x, y] = ginput(n)
,其功能为使用鼠标从二维图形中获取n个点的数据坐标(x,y)。其中n为正整数。
gtext
命令:调用格式gtext({'string1';'string2';'string3'...})
功能为用鼠标把字符串或字符串元胞数组放置到图形中作为文字说明。
zoom
命令:
- zoom on:规定当前图形可以进行缩放。
- zoom off:规定当前图形不可进行缩放。
- zoom:在两个状态之间进行缩放。
- zoom xon:规定当前图形的x轴可以进行缩放。
- zoom yon:y轴可以进行缩放。
- zoom out:使图形返回初始状态。
- zoom(factor):设置缩放变焦因子,默认值为2。
双纵坐标图
很多时候需要把同一自变量的两个不同量纲和量级的因变量同时绘制在同一个图窗中进行比较,这时需要使用两个纵轴来表现不同的因变量。调用格式:
plotyy(x1,y1,x2,y2,'function1','function2')
x = 0:0.01:20;
y1 = 200*exp(-0.05*x);
y2 = 0.8*exp(-0.5*x);
figure;
subplot(131);plotyy(x,y1,x,y2);
subplot(132);plotyy(x,y1,x,y2,'semilogy'); % 对数坐标
subplot(133);plotyy(x,y1,x,y2,'plot','semilogy');
特殊坐标绘图
对数坐标
- semilogx:对x轴刻度求常用对数(以10为底),而y轴为线性刻度。
- semilogy:对y轴刻度求常用对数,x轴为线性刻度。
- loglog:对x,y轴刻度均求常用对数。
x = 0:100;
y = exp(0.05*x);
figure;
subplot(221); plot (x,y)
axis tight; title(' plot '); %见图5.9左上子图
subplot(222); semilogx (x,y)
axis tight; title(' semilogx '); %见图5.9右上子图
subplot(223); semilogy (x,y)
axis tight; title(' semilogy '); %见图5.9左下子图
subplot(224); loglog (x,y)
axis tight; title(' loglog '); %见图5.9右下子图
极坐标
极坐标可以用polar命令来绘制,调用格式:polar(theta,rho)
,polar(theta,rho,LineSpec)
。
极角theta为x轴到半径的单位为弧度的向量,极径rho为各数据点到极点的半径向量,LineSpec为设置极坐标图中线条的线型、标识和颜色。
t = 0:.01:2*pi;
y= sin(2*t).*cos(2*t);
subplot(121);plot(t,y,'k');
axis tight; title('plot'); %见图5.10左图
subplot(122);polar(t,sin(2*t).*cos(2*t),'--k')
axis tight; title('polar'); %见图5.10右图
函数绘图
前文提到的绘图均采用了已有的离散数据,但是在现实中函数随自变量的变化趋势常常是未知的,可能在不同区域内表现出了很大的变化差异,这时用plot命令进行绘图会使图变得十分粗糙。MATLAB提供了fplot
函数和ezplot
函数。
fplot
函数:
fplot(fun,limits)
fplot(fun,limits,LineSpec)
fplot(fun,limits,tol)
fplot(fun,limits,tol,LineSpec)
fplot(fun, limits, n)
fun为待绘制函数,limits表示绘制时自变量的上下限,LineSpec用于设置绘制线的属性,tol表示容许误差,n表示最少分段数。
t1= 0.01:0.005:0.1;
t2= 0.01:0.001:0.1;
t3= 0.01:0.0002:0.1;
sn = @(x) sin(1./x);
y1= sn(t1);
y2= sn(t2);
y3= sn(t3);
subplot(411);plot(t1,y1,'k');
axis tight; title('plot 间距0.005'); %见图5.11上图
subplot(412);plot(t2,y2,'k');
axis tight; title('plot 间距0.001'); %见图5.11中上图
subplot(413);plot(t3,y3,'k');
axis tight; title('plot 间距0.0002'); %见图5.11中下图
subplot(414); fplot(sn,[0.01 0.1])
axis tight; title('fplot 自动调整间距'); %见图5.11下图
ezplot
函数:
ezplot(fun)
ezplot(fun,[xmin,xmax])
ezplot(fun2,[xmin,xmax,ymin,ymax])
ezplot(funx,funy,[tmin,tmax])
fun为待绘制函数,默认自变量范围为-2pi到2pi,可通过[xmin,xmax]设置自变量范围,fun2为隐式函数fun2(x,y),自变量x和y,自变量的使用同fun,funx和funy为对自变量t的函数,自变量的使用同fun。
subplot(231);ezplot('sin(x)') %见图5.12左上图
subplot(232);ezplot('sin(x)',[-pi,pi]) %见图5.12中上图
subplot(233);ezplot('x^2-y^2-1') %见图5.12右上图
subplot(234);ezplot('x^2-y^2-1',[-10,10,-10,10]) %见图5.12左下图
subplot(235);ezplot('cos(x)','sin(x)') %见图5.10中下图
subplot(236);ezplot('cos(x)','sin(x)', [-0.75*pi,pi]) %见图5.12右下图
三维图形
曲线图
plot3
:调用格式
plot3(x1,y1,z1)
plot3(x1,y1,z1,LineSpec)
- x1,y1,z1为长度相同向量时,将绘制一条以向量x1,y1,z1为x,y,z轴坐标值的空间曲线。
- 若均为m*n维矩阵时,绘制m条曲线,第i条空间曲线分别以x1,y1,z1矩阵第i列分量为x,y,z轴坐标值的空间曲线。
x1= cos((1:100)/25*pi*2);
x2= sin((1:100)/25*pi*2);
x3=[x1',x2'];
y1=(1:100)/100.*sin((1:100)/25*pi*2);
y2=cos((1:100)/25*pi*2);
y3=[y1',y2'];
z1=0.01:0.01:1;
z2=0.005:0.005:0.5;
z3=[z1',z2'];
whos
subplot(221);plot3(x1,y1,z1) %绘制y1,见图5.13左上子图
subplot(222);plot3(x2,y2,z2) %绘制y2,见图5.13右上子图
subplot(223);plot3(x3,y3,z3) %绘制y3,见图5.13左下子图
subplot(224);plot3(x1,y1,z1, x2,y2,z2, 0.5*x3,y3,z3) %绘制y4,见图5.13右下子图
网格图
mesh
:
mesh(x,y,z)
mesh(Z)
mesh(...,C)
x,y必须为向量,若x,y长度为m和n,z必须为m*n维的矩阵,C用于定义颜色,如果没有定义C,则mesh(x,y,z)绘制的颜色随z值(曲面高度)成比例变化。在提供x和y的情况下,网格线的顶点为(x(i),y(j),z(i,j));如果没有提供x和y,则将索引(i,j)作为z(i,j)的x轴和y轴的坐标值。
绘制函数z = f(x,y)三维网格图的过程如下:
(1)确定自变量x和y的取值范围和取值间隔。
x=x1:dx:x2
y=y1:dy:y2
(2)构成xoy平面上的自变量采样点矩阵。
- 利用格点矩阵的原理生成矩阵。
x=x1:dx:x2; y=y1:dy:y2;
X = ones(size(y))*x;
Y = y*ones(size(X));
- 利用meshgrid命令生成格点矩阵。
x=x1:dx:x2; y=y1:dy:y2;
[X, Y] = meshgrid(x,y);
(3)计算在自变量采样“格点”上的函数值:Z=f(X,Y)。
[X,Y] = meshgrid(-8:.5:8);
R = sqrt(X.^2 + Y.^2) + eps;
Z = sin(R)./R;
C = gradient(Z);
subplot(131); mesh(Z);%见图5.14左图
subplot(132);mesh(X,Y,Z); axis([-8 8 -8 8 -0.5 1]) %见图5.14中图
subplot(133);mesh(X,Y,Z,C); axis([-8 8 -8 8 -0.5 1]) %见图5.14右图
曲面图
surf
函数:调用格式
surf(x,y,z,c)
,操作方法同mesh
命令。
两个命令不同的地方在于,mesh
命令绘制的图形是网格划分的曲面图,而surf
命令绘制得到的是平滑着色的三维曲面图,着色方式是在得到相应的网格点后对每一个网格点根据该网格所代表的节点色值(由变量C控制)来定义这一网格的颜色。
[X,Y] = meshgrid(-8:.5:8);
R = sqrt(X.^2 + Y.^2) + eps;
Z = sin(R)./R;
C = gradient(Z);
subplot(221); surf (Z);%见图5.14左上图
subplot(222); surf (Z,C);%见图5.14右上图
subplot(223); surf (X,Y,Z); axis([-8 8 -8 8 -0.5 1]) %见图5.14左下图
subplot(224); surf (X,Y,Z,C); axis([-8 8 -8 8 -0.5 1]) %见图5.14右下图
四维图形
前面介绍的mesh和surf命令除了使用三维的数据外,还是用了一个颜色数据,在未给颜色数据的情况下,图像的颜色是沿着z轴数据变换的,但该颜色可以由其他数据来决定,如果颜色表示第四维数据,就可以绘制出四维图。MATLAB表达四维数据就是采用颜色,通过不同的颜色可以将四维的数据在二维平面表现出来。
[X,Y,Z]=peaks(60);
R = sqrt(X.^2+Y.^2)+eps;
subplot(121);surf(X,Y,Z,Z);axis tight%见图5.16左图
subplot(122);surf(X,Y,Z,R);axis tight%见图5.16右图
slice
函数 调用格式:
slice(x,y,z,v,sx,sy,sz)
,其功能为显示三元函数v=v(x,y,z)确定的立体形状在x轴、y轴、z轴方向上的若干点的切片图。各点坐标由数量向量sx、sy、sz指定,其中v为m*n*p的三维数组。默认情况下x=1:m, y=1:n, z=1:p。
[x1,y1] = meshgrid(-1:.05:1);
[x2,y2,z2] = meshgrid(-1:.05:1,-1:.05:1,-1:.05:1);
z1= sqrt(2-x1.^2+y1.^2);
v1= exp(-x1.^2-y1.^2-z1.^2);
v2 = x2.*exp(-x2.^2-y2.^2-z2.^2);
subplot(131); surf(x1,y1,z1,v1)%见图5.17左图
subplot(132); mesh(x1,y1,z1,v1) %见图5.17中图
xslice = [-0.6,.4,1]; yslice = 1; zslice = [-1,0];
subplot(133); slice(x2,y2,z2,v2,xslice,yslice,zslice);colormap hsv%见图5.17右图
特殊图形
饼状图
pie(x,explode,labels)
,绘制x的饼图,explode为与x同维矩阵,如果其中有非零元素,x矩阵中的相应位置的元素在饼图中对应的扇形将向外移出一些,加以突出,labels为定义相应块的标签。
三维饼图可采用pie3函数进行绘制,调用格式:
pie(x,explode,labels)
x = [2 5 0.5 3.5 2];
explode = [0 1 0 1 0];
subplot(121);pie(x,explode)%见图5.18左图
colormap jet
subplot(122);pie3(x,explode) %见图5.18右图
colormap hsv
直方图
hist(Y,x)
,hist(Y,nbins)
,其中Y为待统计量,x为分组分量,nbins为指定条形的数目。
还可以通过histc计算统计分量,调用格式:
histc(x,edges,dim)
,x为待统计分布量,edges为统计范围,dim代表维度。
x = -2.9:0.1:2.9;
y = randn(100000,1);
subplot(121);hist(y,x) %见图5.19左图
n_elements = histc(y,x);
c_elements = cumsum(n_elements);
subplot(122);bar(x,c_elements,'BarWidth',1) %见图5.19右图
柱形图
bar(x,Y)
,bar(__,Name,Value)
,bar(__,width)
,bar(__,style)
,bar(__,bar_color)
:
其中,Y为待绘制的向量和矩阵;x定义x轴方向的绘制位置;width为绘制宽度占空比,默认为0.8;style定义形状类型,可取’group’,’stacked’,’hist’和’hostc’等;bar_color定义颜色;Name和Value分别设置属性名和属性值。
绘制水平柱形图可用barh
函数,调用格式:barh(X,Y)
,barh(...,width)
,barh(...,'style')
。
相应的,三维柱形图可采用bar3
函数来绘制,调用格式:bar3(x,Y)
,bar3(...,width,'style',LineSpec)
。
y1 = [123.203,131.669, 150.697,179.323,203.212]';
y2= [75.995,91.972,105.711, 226.505,249.633]';
Y= [y1,y2];
x=[2:4:18]';
subplot(241); bar(y1); title('Default')
subplot(242); bar(y1,0.4); title('Width=0.4')
subplot(243); bar(x, y1); title('Specified x ')
subplot(244); barh(x, y1); title('Horizontal')
subplot(245); bar(Y,'grouped'); title('Group')
subplot(246); bar(Y,'stacked'); title('Stack')
subplot(247); bar(Y,'histc'); title('Histc')
subplot(248); bar(Y,'hist'); title('Hist')
load count.dat;
y = count(1:10,:);
subplot(241);bar3(y,'detached');title('Detached');axis tight;
subplot(242);bar3(y,0.5,'detached');title('Width = 0.5'); axis tight;
subplot(243);bar3(y,'grouped');title('Grouped'); axis tight;
subplot(244);bar3(y,0.25,'grouped');title('Width = 0.25'); axis tight;
subplot(245);bar3(y,'stacked');title('Stacked'); axis tight;
subplot(246);bar3(y,0.25,'stacked');title('Width = 0.25'); axis tight;
subplot(247);bar3h(y,'detached');title('Detached'); axis tight;
subplot(248);bar3h(y,0.5,'detached');title('Width = 0.5'); axis tight;
离散数据点图
stem
命令:调用格式为stem(x,y)
,stem(...,'fill',Linespec)
。
其中,y是待绘制的数据点纵坐标,x为待绘制数据点横坐标,’flii’代表填充点的颜色,LineSpec设置火柴杆线的属性。
相应的,三维火柴杆图可以用stem3
来绘制,调用格式stem(x,y,z)
,stem(...,'fill',LineSpec)
。
t = linspace(-2*pi,2*pi,10);
x= cos(t);y= sin(t);
subplot(231);stem(y); axis tight;
subplot(232);stem(y, 'fill','--'); axis tight;
subplot(233);stem(t, y); axis tight;
subplot(234);stem(x, y); axis tight;
subplot(235);stem3(t); axis tight;
subplot(236);stem3(x, y, t); axis tight;
散点图
scatter
函数,调用格式scatter(x,y,s,c)
,scatter(...,markertype,'filled')
。
其中,x和y为横纵坐标,绘制散点;s决定点标识的大小;c设置颜色;markertype为标识形状;filled代表填充点的颜色操作。
相应的三维散点图函数scatter3
,调用格式scatter3(x,y,z,s,c,markertype,'filled')
。
load seamount
subplot(131);scatter(x,y,5,z); axis tight
subplot(132);scatter(x,y,sqrt(-z/2),[.5 0 0],'filled'); axis tight
subplot(133);scatter3(x,y,z,5,'filled'), view(40,35); axis tight
向量图
quiver
函数用来绘制二维向量图,即绘制向量场的形状。调用格式
quiver(x,y,u,v)
,quiver(...,scale,LineSpec,'filled')
。
函数在坐标(x,y)处用箭头图形,绘制向量,若未设置则使用下标代替;(u,v)为相应点的速度分量;’filled’代表填充点的颜色;’LineSpec’设置线属性;scale用来控制看到的图中向量“长度”的实数,默认为1,有时需要设置小点的值,以免绘制的向量彼此重叠。
相应的,三维向量图可用quiver3
函数进行绘制,调用格式quiver(x,y,z,u,v,w,scale,LineSpec,'filled')
。
该函数在坐标(x,y,z)绘制,向量(u,v,w)为速度分量,其余参数同quiver
函数。
vz = 10;a = -32;
t = 0:.1:1;
z = vz*t + 1/2*a*t.^2;
vx = 2;x = vx*t;vy = 3;y = vy*t;
u = gradient(x);v = gradient(y);w = gradient(z);
scale = 0;
subplot(131);quiver3(x,y,z,u,v,w,scale);view([70 18])
title('抛物运动路径与速度')
subplot(132);quiver(x,z,u,w,scale);axis([0 4 -10 2])
title('抛物运动路径与速度XZ面投影')
subplot(133);quiver(y,z,v,w,scale); axis([0 4 -10 2])
title('抛物运动路径与速度YZ面投影')
等值线图
contour
命令可以绘制二值等值线图,调用格式contour(x,y,z,n)
,contour(x,y,z,v)
,contour(...,LineSpec)
。
其中,z为数值矩阵;n为所绘图形等值线的条数;v为向量,等值线条数等于该向量的长度,并且等值线的值为对应向量的元素值;LineSpec用于设置线属性。相应的三维等值线可以用contour3
函数。
[X,Y] = meshgrid([-2:.25:2]);
Z = X.*exp(-X.^2-Y.^2);
[px,py] = gradient(Z,.25,.25);
subplot(221);contour(X,Y,Z,30);title('2D Contour');
subplot(222);contour3(X,Y,Z,30);title('3D Contour'); view(-15,25)
subplot(223);contour(X,Y,Z,30);hold on;
quiver(X,Y,px,py), hold off; title('2D Contour & Quiver');
subplot(224);contour3(X,Y,Z,30); hold on;
surface(X,Y,Z,'EdgeColor',[.8 .8 .8],'FaceColor','none')
grid off; view(-15,25); title('3D Contour & Surface');
图形处理
图形细化
栅格
栅格是用于辅助图形标注尺寸和找正的细线,可以使图像表达得更清楚。MATLAB用grid
函数来控制栅格。
grid on
在当前图形添加栅格。
grid off
在当前图形取消栅格。
grid
在on和off之间进行切换。
grid mirror
可以细化栅格。
还可以使用set命令进行设置,如设置三个方向的栅格:
set(axh,'Xgrid','on','Ygrid','on',Zgrid','on')
X = (0:200)*pi/100; Y = 2*sin(X);
subplot(221); plot(X, Y, 'LineWidth', 2); xlim([0 2*pi]); title('无栅格');
subplot(222); plot(X, Y, 'LineWidth', 2); xlim([0 2*pi]); grid on; title('有栅格');
subplot(223); plot(X, Y, 'LineWidth', 2); xlim([0 2*pi]); grid on; grid; title('栅格切换后');
subplot(224); plot(X, Y, 'LineWidth', 2); xlim([0 2*pi]); grid on; grid minor; title('细化栅格');
标注
在绘图时,常需要进行一些文字标注来更加清楚的表达图形的意义。
- title:在图窗口顶端位置的中间位置输出字符串作为标题
- xlabel:在x轴下的中间位置输出字符串作为标注
- ylabel:在y轴下的中间位置输出字符串作为标注
- text(x,y,’text’):在图窗口的(x,y)处写字符串text
- legend(‘string1’,’string2’,…,’location1’,’location2’):功能为在当前图上输出图例,并用说明性字符串string1和string2做标注。
- legend off:从当前图形中清除图例。
- gtext(‘text’):使用鼠标或方向键移动图中的十字光标,让用户将字符串放置在图窗口中。
t = -pi:pi/20:pi;
x=cos(t);
y=sin(t);
subplot(131);plot(t,x);title('Only Title Marked');
subplot(132);plot(t,y);title('Title& Legend');xlabel('t');ylabel('y');
subplot(133);plot(x,y);title('With Text Mark');text(0,0,'circle');xlabel('x');ylabel('y')
subplot(121);plot(0:0.01:1,1- (0:0.01:1).^2)
text(0.5,0.75,' \leftarrow x^2')
subplot(122);plot(0:pi/20:2*pi,sin(0:pi/20:2*pi))
text(pi,0,' \leftarrow sin(\pi)')
字体样式
字体命令:
- Arial:Arial字体
- Roman:Roman字体
- 宋体
- 黑体
文字风格
- bf:黑体
- it:斜体1
- sl:斜体2
- rm:正体
文字大小
- 10:默认,字号为小五
- 12:五号字体
text(.1,.5,['\fontsize{16}black {\color{magenta}magenta '...
'\color[rgb]{0 .5 .5}teal \color{red}red} black again'])
坐标轴控制
MATLAB坐标轴绘制函数
命令 | 描述 | 命令 | 描述 |
---|---|---|---|
asix auto | 使用坐标轴默认设置 | axis([xmin, xmax, ymin, ymax]) | 设置x和y轴范围 |
axis manual | 保持当前坐标刻度范围 | axis equal | 横纵坐标采用等长刻度 |
axis fill | 是坐标填满整个绘图区 | axis image | 效果与axis equal相同,只是图形区域刚好紧紧包围图像数据 |
axis off | 取消坐标轴标签、刻度和背景 | axis tight | 把数据范围设置为坐标范围 |
axis on | 打开坐标轴标签、刻度和背景 | axis square | 使用方形坐标系 |
axis ij | 使用矩阵式坐标,原点在左上方 | xlim([xmin xmax]) | 设置x轴范围 |
axis xy | 使用直角坐标 | ylim([ymin ymax]) | 设置y轴范围 |
axis normal | 使用默认矩形坐标系 | zlim([zmin zmax]) | 设置z轴范围 |
X= -5*pi:pi/20:5*pi;
Y=cos(X);
subplot(131); plot(X, Y, 'LineWidth', 2); title('自动');
subplot(132); plot(X, Y, 'LineWidth', 2); xlim([0 10]); title('设置X轴');
subplot(133); plot(X, Y, 'LineWidth', 2); axis tight; title('显示整个数据范围');
视角与透视
视角控制命令,有view
和rotate3D
等,这里只介绍view
函数。
view
函数可以设置立体图形的观察点,调用格式:
view(az,el)/view([az,el])
view([x,y,z])
view(2)
view(3)
[az, el] = view
其中az为方位角,el为仰角;[x,y,z]设置原点的视角方向;view(2)函数设置默认的二维形式视点;view(3)设置默认的三维形式视点。
[X,Y,Z]=peaks(30);
subplot(221);surf(X,Y,Z,Z);axis tight; view(-37.5,30);
subplot(222);surf(X,Y,Z,Z);axis tight; view([1 1 2]);
subplot(223);surf(X,Y,Z,Z);axis tight; view(2);
subplot(224);surf(X,Y,Z,Z);axis tight; view(3);
绘图窗口
创建绘图窗口
figure
figure('propertyName',propertyvalue,...)
figure(h)
h = figure(...)
其中PropertyName为属性名,PropertyValue为属性值,h为窗口对应的句柄。
- get(n):该命令返回句柄值为n的绘图窗口的参数名称及其当前值。
- set(n):该命令返回句柄为n的绘图窗口的参数名称和取值范围。
figure; get(gcf); set(gcf)