专题4:matlab图形绘制

一、二维曲线

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)textgtext(图形说明)

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储存数据

  • 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 xy一般为同等大小的向量,用于定位数据点
    • 若选项规定的数据点标记为封闭图形,可用'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 xy以及 u 、 v u、v uv为同样大小的向量或同型矩阵

    若省略 ( 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(1x2)ex2(y+1)210(5xx3y5)ex2y231e(x+1)2y2

矩阵元素由以上表达式在矩形区域: 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种颜色的列表,meshsurf函数着色时,依次使用其中的颜色
  • 内建色图:为一个 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)绘图工具的组成

①图形选项板

  • 新子图面板
  • 注释面板

②绘图浏览器

③属性编辑器

3.图形窗口菜单和工具栏

(1)工具栏

(2)图形窗口菜单

你可能感兴趣的:(matlab,matlab,线性代数)