一、二维曲线
1.plot
函数
(1)过程
按顺序用直线将各点连接起来,形成一条折线。
(2)形式
-
x x x和 y y y分别用于存储 x x x坐标和 y y y坐标数据,通常 x x x和 y y y为长度相等的向量。
>> x=[2.5,3.5,4,5]; >> y=[1.5,2,1,1.5]; >> plot(x,y)
-
x x x为实向量时,则以该向量元素的下标为横坐标,值为纵坐标。
>> x=[1.5,2,1,1.5]; >> plot(x)
-
x x x为复数向量时,则以该向量元素的实部为横坐标,虚部为纵坐标。
>> x=[2.5,3.5,4,5]; >> y=[1.5,2,1,1.5]; >> cx=x+y*i;%cx=complex(x,y); >> plot(cx);
-
x x x为向量, y y y是矩阵时
- 若矩阵 y y y的列数等于 x x x的长度,则以向量 x x x为横坐标,以 y y y的每个行向量为纵坐标绘制曲线,曲线的条数等于 y y y的行数
- 若矩阵 y y y的行数等于 x x x的长度,则以向量 x x x为横坐标,以 y y y的每个列向量为纵坐标绘制曲线,曲线的条数等于 y y y的列数
-
x x x、 y y y是同型矩阵时,则以 x x x、 y y y对应列元素为横纵坐标分别绘制曲线,曲线条数等于矩阵的列数。
-
含有多个输入参数,其中每一向量对构成一组数据点的横、纵坐标,绘制一条曲线
plot(x1,y1,x2,y2,...,xn,yn)
-
含选项的
plot
函数,用于指定线型、颜色和数据点标记plot(x,y,选项) plot(x,y,"k:")%'b--','rp'
- 线型:
- “-”:实线
- “:”:虚线
- “-.”:点画线
- “–”:双画线
- 颜色:
- “r”:红色
- “g”:绿色
- “b”:蓝色
- “w”:白色
- “k”:黑色
- 数据点标记
- “*”:星号
- “o”:圆圈
- “s”:方块
- “p”:五角星
- “^”:朝上三角符号
- 线型:
2.fplot
函数
(1)基本形式
fplot(f,lims,选项)
- f f f代表一个函数,通常采用函数句柄的形式。
- l i m s lims lims为 x x x轴的取值范围,用二元向量 [ x m i n , x m a x ] [xmin,xmax] [xmin,xmax]描述,默认值为 [ − 5 , 5 ] [-5,5] [−5,5]。
- 1选项定义与
plot
函数相同。
(2)双输入函数参数的用法(参数方程)
fplot(funx,funy,tlims,选项)
- f u n x funx funx和 f u n y funy funy代表函数,通常采用函数句柄的形式。
- t l i m s tlims tlims为参数函数 f u n x funx funx和 f u n y funy funy的自变量的取值范围,用二元向量 [ t m i n , t m a x ] [tmin,tmax] [tmin,tmax]描述。默认值同上。
- 选项定义与
plot
函数相同
fplot(@(t)t.*sin(t),@(t)t.*cos(t),[0,10*pi],'r')
二、辅助操作
1.图形标注
(1)title
函数
①基本用法
title(图形标题)title(y=sin(x)')title({'MATLAB','y=sin(x)'})
② L a t e x Latex Latex格式
图形标题中可以使用 L a t e x Latex Latex格式控制符。
title('y=cos{\omega}t')
③含属性设置的title
函数
title(图形标题,属性名,属性值)
-
C o l o r Color Color颜色:
title('y=cos{\omega}t','Color','r')
-
F o n t S i z e FontSize FontSize字号:
title('y=cos{\omega}t','FontSize',24)
默认字号为 11 11 11。
(2)xlabel
(x轴说明)与ylabel
(y轴说明)
xlabel('-2\pi\leqx\leq2\pi')
(3)text
与gtext
(图形说明)
text(x,y,说明)text(-2*pi,0,'-2{\pi}')text(3,0.28,'\leftarrow sin(x)')gtext('\leftarrow sin(x)')
(4)legend
(图例1,图例2,···)
legend('sin(x)','sin(2x)','sin(3x)','location','eastoutside')%location表示图例位置,eatoutside表示放在右边的外侧>>x=linspace(0,2*pi,100);>>plot(x,[sin(x);sin(2*x);sin(3*x)])>>legend('sin(x)','sin(2x)','sin(3x)')
2.坐标控制
(1)axis
函数
-
基本用法
axis([xmin,xmax,ymin,ymax,zmin,zmax])
-
横纵坐标轴采用等长刻度
axis equal
-
采用正方形坐标系(默认为矩形)
axis square
-
采用默认设置
axis auto
-
取消坐标轴
axis off
(2)给坐标系加网格和边框
①网格
默认不显示网格线
grid on%开网格grid off%关网格grid%切换
②边框
默认显示网格线
box on%开边框box off%关边框box%切换
3.图形的保持
hold on%保持hold off%刷新hold%切换
4.图形窗口的分隔
m m m和 n n n指定将图形窗口分成 m × n m×n m×n个绘图区, p p p指定当前活动区,区号按行优先编号
subplot(m,n,p)
三、其他形式的二维曲线
1.其他坐标系下的二维图像
(1)对数坐标图
semilogx(x1,y1,选项1,x2,y2,选项2,···)%x半对数坐标曲线semilogy(x1,y1,选项1,x2,y2,选项2,···)%y半对数坐标曲线loglog(x1,y1,选项1,x2,y2,选项2,···)
(2)极坐标图
t h e t a theta theta为极角, r h o rho rho为极径
polar(theta,rho,选项)
(3)统计图
①条形图
-
bar
函数:绘制二维垂直条形图bar(y,style)
- 若输入参数
y
y
y为向量,则:
- 以每一个元素的值为每一个矩形条的高度
- 以对应元素的下表作为横坐标
- 若
y
y
y为矩阵,则:
- 以每一行组成一组
- 用矩阵的行号作为横坐标,分组绘制矩形条
-
s
t
y
l
e
style
style用于指定分组排列模式,可省略:
- g r o u p e d grouped grouped:簇状分组(默认)
- s t a c k e d stacked stacked:堆积分组
bar(x,y,style)
其中 x x x储存横坐标, y y y储存数据
- 若输入参数
y
y
y为向量,则:
-
barh
函数:绘制二维水平条形图
②直方图
-
hist
函数:直角坐标系hist(y)hist(y,x)
-
通常参数 y y y是向量,是要统计的数据
-
绘图时,将 y y y中的最小值和最大值之间等分
-
统计落在每个区间的元素个数
-
以元素个数为高度绘制条形图
-
-
x x x用于指定区间的划分方式
- 若 x x x是标量,则分为 x x x个小区间
- 若 x x x是向量,则 x x x的每一个数作为分组的中心值, x x x的个数为组数
- 无 x x x时,默认为按 10 10 10个等分区间进行统计
-
-
rose
函数:极坐标系rose(theta,x)
-
参数 t h e t a theta theta是一个向量,用于确定每一个区间与原点的角度
-
绘图时将圆划分为若干个角度相同的扇形区域,高度反应落入该区间的 t h e t a theta theta元素的个数
-
选项 x x x用于指定区间的划分方式
- 若 x x x是标量,则在 [ 0 , 2 π ] [0,2\pi] [0,2π]区间内,均匀划分成 x x x个扇形区域
- 若 x x x缺损,则默认为 20 20 20
-
③扇形图
pie(x,explode)
- 参数 x x x存储待统计数据,通常 x x x为向量,绘图时, x x x的每一个元素对应一个扇形
-
e
x
p
l
o
d
e
explode
explode是与
x
x
x同等大小的向量
- 与参数 e x p l o d e explode explode的非零值部分将从饼图中心分离出来
- 省略时饼图是一个整体
④面积图
area(x,eplode)
⑤散点图
-
scatter
函数:散点图scatter(x,y,选项,'filled')
- 参数 x , y x,y x,y一般为同等大小的向量,用于定位数据点
- 若选项规定的数据点标记为封闭图形,可用
'filled'
填充标记,省略则为空心
-
stairs
函数:阶梯图 -
stem
函数:杆图
(4)矢量图
-
compass
函数:罗盘图 -
feather
函数:羽毛图 -
quiver
函数:箭头图quiver(x,y,u,v)
( x , y ) (x,y) (x,y)为矢量起点, ( u , v ) (u,v) (u,v)为矢量重点, x 、 y x、y x、y以及 u 、 v u、v u、v为同样大小的向量或同型矩阵
若省略 ( x , y ) (x,y) (x,y),则在平面内均匀取若干点为起点
四、三维曲线
1.plot3
函数
plot3(x,y,z,选项)
- x x x, y y y, z z z为长度相同的向量,组成一组曲线的坐标
- x x x, y y y, z z z为同型矩阵,则以 x x x, y y y, z z z对应列元素绘制曲线,曲线条数等于矩阵列数
- x x x, y y y, z z z中有向量有矩阵,则行向量的长度应与矩阵的列数相同,列向量的长度与矩阵的行数相同
- 选项同
plot
函数,可以省略
plot3(x1,y1,z1,x2,y2,z2,...,xn,yn,zn)
每一组 x x x, y y y, z z z向量构成一组数据点的坐标,绘制一条曲线
2.fplot3
函数
fplot3(funx,funy,funz,tlims,选项)
- f u n x funx funx, f u n y funy funy, f u n z funz funz代表定义曲线 x x x, y y y, z z z坐标的函数,通常采用函数句柄形式
- t l i m s tlims tlims为参数函数 f u n x funx funx, f u n y funy funy, f u n z funz funz的自变量的取值范围,用二元向量 [ t m i n , t m a x ] [tmin,tmax] [tmin,tmax]描述。默认值同上。
- 选项同
plot
函数,可以省略
四、三维曲面
1.平面网格数据的生成
(1)矩阵运算生成
>>x=2:6;>>y=(3:8)';>>X=ones(size(y))*x;>>X=y*ones(size(x));
(2)利用meshgrid
函数
[X,Y]=meshgrid(x,y);[X,Y]=meshgrid(x);%x与y相同
参数 x x x, y y y为向量,存储网格点坐标的 X X X, Y Y Y为矩阵
2.mesh
函数与surf
函数
mesh
函数:三维网格图(线条有颜色,网格图补面无颜色)surf
函数:三维曲面图(线条无颜色,网格图补面有颜色)
(1)一般形式
mesh(x,y,z,c)surf(x,y,z,c)
x x x, y y y是网格坐标矩阵, z z z是网格点上的高度矩阵, c c c用于指定在不同高度下的曲面颜色
>>t=-2:0.2:2;>>[X,Y]=meshgrid(t);>>Z=X.*exp(-X.^2-Y.^2);>>subplot(1,3,1)>>mesh(X,Y,Z);>>subplot(1,3,2)>>surf(X,Y,Z);>>subplot(1,3,3)>>plot3(X,Y,Z);>>grid on
(2)其他形式
mesh(z,c)surf(z,c)
当 x x x, y y y省略时, z z z矩阵的第二维下标当作 x x x轴坐标, z z z矩阵的第一维下标当作 y y y轴坐标
- 带等高线的三维网络曲面函数
meshc
- 带底座的三维网络曲面函数
meshz
- 具有等高线的曲面函数
surfc
- 具有光照效果的曲面函数
surfl
(3)fmesh
函数与fsurf
函数
fmesh(funx,funy,funz,uvlims)fsurf(funx,funy,funz,uvlims)
两个参数的参数方程, u v l i m s uvlims uvlims为取值范围
- 用四元向量 [ u m i n , u m a x , v m i n , v m a x ] [umin,umax,vmin,vmax] [umin,umax,vmin,vmax]描述,默认为 [ − 5 , 5 , − 5 , 5 ] [-5,5,-5,5] [−5,5,−5,5]
- 若是二元向量,则表示取值范围相同
3.标准三维曲面
(1)sphere
函数:三维球面
[x,y,z]=sphere(n);sphere(n)
- 产生三个 n + 1 n+1 n+1阶方阵,可用于绘制圆心在原点,半径为 1 1 1的单位球体
- 若不带输出参数,则直接绘制球面
- 参数n决定球面的圆滑程度,默认 20 20 20
(2)cylinder
函数:三维柱面
[x,y,z]=cylinder(R,n);cylinder
- R R R是一个向量,存储柱面各个等间隔高度的半径
- R R R是一个标量,则生成一个圆柱面,默认为 1 1 1
- n n n表示在圆柱圆周上有 n n n个间隔点,默认 20 20 20
(3)peaks
函数:生成绘图数据矩阵
f ( x , y ) = 3 ( 1 − x 2 ) e − x 2 − ( y + 1 ) 2 − 10 ( x 5 − x 3 − y 5 ) e − x 2 − y 2 − 1 3 e − ( x + 1 ) 2 − y 2 f(x,y)=3(1-x^{2})e^{-x^{2}-(y+1)^{2}}-10(\frac{x}{5}-x^{3}-y^{5})e^{-x^{2}-y^{2}}-\frac{1}{3}e^{-(x+1)^{2}-y^{2}} f(x,y)=3(1−x2)e−x2−(y+1)2−10(5x−x3−y5)e−x2−y2−31e−(x+1)2−y2
矩阵元素由以上表达式在矩形区域: x x x方向 [ − 3 , 3 ] [-3,3] [−3,3], y y y方向 [ − 3 , 3 ] [-3,3] [−3,3],上的等分网格点上的值确定
peaks(n)%生成n阶方阵peaks(V)%参数为矩阵peaks(x,y)%参数为向量peaks%默认乘胜49阶方阵
五、图形修饰处理
1.视点处理
-
方位角:视点与原点连线在 x y xy xy平面的投影,与 y y y轴负方向形成的角度。正值表示逆时针,负值表示顺时针。
-
仰角:视点与原点连线与 x y xy xy平面的夹角。正值表示在 x y xy xy平面上方,负值表示在 x y xy xy平面下方。
(1)view函数的基本用法
view(az,el)
a z az az为方位角, e l el el为仰角,系统默认视点为 ( 37.5 ° , 30 ° ) (37.5°,30°) (37.5°,30°)
(2)view函数的其他用法
view(x,y,z)%视点在笛卡尔坐标系下的位置view(2)%从二维平面观察图形(0°,90°)view(3)%从三维空间观察图形,默认方位角和仰角
2.色彩处理
(1)颜色的向量表示
[R G B][0 0 1]%蓝色[1 0 0]%红色[0 1 0]%绿色[1 1 1]%白色[0 0 0]%黑色
(2)色图
①分类
- 色图矩阵:每个图形窗口有一个色图,是一个
m
×
3
m×3
m×3的矩阵,每一行是
R
G
B
RGB
RGB三元组,定义了一个包含
m
m
m种颜色的列表,
mesh
和surf
函数着色时,依次使用其中的颜色 - 内建色图:为一个 64 × 3 64×3 64×3的矩阵,默认为 p a r u l a parula parula色图。还有:冷暖色图( h o t hot hot, c o o l cool cool)、四季色图( s p r i n g spring spring, s u m m e r summer summer, a u t u m n autumn autumn, w i n t e r winter winter)、灰度色图等
②指定色图
colormap cmapname%内建色图名colormap(cmap)%色图矩阵>>surf(peaks)>>colormap hot
③自定义色图矩阵
c=[0,0.2,0.4,0.6,0.8,1]';cmap=[c,c,c];%cmap=gray(6);surf(peaks)colormap(cmap)
(3)三维图形表面的着色
- s h a d i n g f a c e t e d shading~faceted shading faceted:将每个网格片用其高度对应的颜色进行着色,网格线是黑色。即默认方式。
- s h a d i n g f l a t shading~flat shading flat:将每个网格片用同一个颜色进行着色,且网格线也用相应颜色
- s h a d i n g i n t e r p shading~interp shading interp:在网格片内采用颜色插值处理。
3.裁剪处理
将图形种需要裁剪部分对应的函数值设置成 N a N NaN NaN,这样在绘制图形时,函数值为 N a N NaN NaN的部分将不显示出来,从而达到对图形进行裁剪的目的。
%绘制3/4圆>>t=linspace(0,2*pi,100);>>x=sin(t);>>y=cos(t);>>p=y>0.5;>>y(p)=NaN;>>plot(x,y)
六、交互式绘图工具
1.绘图选项卡
二维:以先选中的为横坐标,后选中的为纵坐标
三维:以选择顺序的为 x x x, y y y, z z z坐标
2.图形窗口绘图工具
(1)显示绘图工具
>>plottools
或者按“查看”按钮
(2)绘图工具的组成
①图形选项板
- 新子图面板
- 注释面板