MATLAB绘图方法总结
二维曲线
1.\(plot(x)\)
若\(x\)内为实数,则该函数以向量下标为横坐标,向量内对应的值为纵坐标绘制折线。
若\(x\)内为复数,则该函数以实部为横坐标,虚部为纵坐标绘制折线。
2.\(plot(x,y)\)
若\(x\)和\(y\)为两个长度相等的向量,则它们分别对应\(x\)坐标和\(y\)坐标,将绘制出一条折线。
若\(x\)是向量,\(y\)是矩阵,则以向量\(x\)为横坐标,\(y\)的列元素为纵坐标绘制出若干条折线。
若\(x\)和\(y\)为同型矩阵,则以\(x\)和\(y\)对应的列元素为横纵坐标绘制出若干条折线。
3.\(plot(x_1,y_1,x_2,y_2,\dots,x_n,y_n)\)
该函数分别以每一对\((x_i,y_i)\)绘制\(n\)条折线。
4.\(plot(x,y,'opt')\)
可在plot函数后面添加选项,主要有线型,颜色,数据点标记三种。
线型:"-"对应实线,":"对应虚线,"-."对应点画线,"--"对应双画线\(\dots\)
颜色:"r"对应红色,"b"对应蓝色,"g"对应绿色,"w"对应白色,"k"对应黑色\(\dots\)
数据点标记:"*"对应星号,"o"对应圆圈,"s"对应方块,"p"对应五角星,"^"对应朝上三角符号\(\dots\)
用法举例:\(plot(x_1,y_1,'k:',x_2,y_2,'b--',x_1,y_3,'rp')\)
5.\(fplot(f,lim,'opt')\)
\(f\)是一个函数,通常采用函数句柄形式,@为定义句柄的运算符。
\(lim\)为函数\(x\)轴取值范围,用二元向量\([xmin,xmax]\)描述。
用法举例:\(fplot(@(x)sin(1./x),[0,0.02],'b')\)
6.\(fplot(fx,fy,tlim,'opt')\)
该函数用于描绘参数方程表示出来的函数图像,\(fx\)是\(x\)关于\(t\)的函数\(fy\)是\(y\)关于\(t\)的函数,\(tlim\)是\(t\)的取值范围
绘制图形的辅助操作
1.给图形添加标注
\(title('x')\)用于给图像添加标题
\(title('x','y')\)用于给图像添加多行标题
\(title('x','name','opt')\)用于改变图像标题属性,如\('Color'\)改变标题颜色,\('FontSize'\)改变标题字号。
\(xlabel(x)\)用于给\(x\)轴添加说明,用法同上
\(ylabel(x)\)用于给\(y\)轴添加说明,用法同上
\(text(x,y,w)\)用于给图像中\((x,y)\)位置添加说明
\(gtext(w)\)用于给图像中鼠标确定的位置添加说明
\(legend('x','y','z')\)用于给图像添加图形标注,顺序和调用\(plot\)时的顺序一致
2.坐标控制
\(axis(xmin,xmax,ymin,ymax)\)用于控制图像的坐标范围
\(grid\) \(on\)命令用于在坐标系中显示网格,\(grid\) \(off\)用于消去网格
3.图形保持
执行MATLAB时每次默认刷新图形窗口,若希望在已存在的图形上叠加新图形,可以使用\(hold\) \(on\)命令保持图形
4.图形窗口的分割
\(subplot(m,n,p)\)将图形窗口分成\(m*n\)个绘图区,指定当前处理第\(p\)块区域
其他形式的二维图形
1.其他坐标系下的二维曲线图
对数坐标图:\(semilogx(x_1,y_1,'opt',x_2,y_2,'opt',\dots)\)函数内部参数与\(plot\)用法一致,其中绘图时会将\(x\)取对数。
据此不难理解\(semilogy()\)和\(loglog()\)函数的用法
极坐标图:\(polar(\theta,\rho,'opt')\)函数内部参数与\(plot\)用法一致
2.统计图
条形图:\(bar(y,style)\)中,\(y\)的每一行元素在图中为一组,\(style\)参数用于确定分组模式,有\(grouped\)和\(stacked\)两种
\(bar(x,y,style)\)中,\(x\)储存横坐标,\(y\)储存数据
直方图:\(hist(y,x)\)中,\(y\)是要统计的数据,\(x\)是指定区间的划分方式。
若\(x\)为标量,则将\(y\)的值域等分成\(x\)个区间画图。若\(x\)是矢量,里面的每一个元素就是直方图区间的中点。
扇形图:\(pie(x,k)\)中,\(x\)为待统计数据,\(k\)为显示模式,\(k\)与\(x\)为等长向量,\(k\)为\(1\)处对应的\(x\)扇形会突出显示
扇形图调用\(legend(a,b)\)时,需在末尾添加\('location'\)参数,以及参数的值,如\('eastoutside'\),否则图例会遮挡
散点图:\(scatter(x,y,'opt','filled')\)中,前三个参数用法和\(plot\)函数相同,\(filled\)可以填充数据点标记
3.矢量类图形
罗盘图:\(compass()\)用法和\(plot\)相似
羽毛图:\(feather()\)用法和\(plot\)相似
箭头图:\(quiver()\)用法和\(plot\)相似
三维曲线
1.\(plot3(x,y,z)\)
若\(x,y,z\)是等长向量,则它们组成一组曲线的坐标。
若\(x,y,z\)是同型矩阵,则它们对应的每一列作为一条曲线。
2.\(plot3(x_1,y_1,z_1,x_2,y_2,z_2,\dots,x_n,y_n,z_n)\)
该函数分别以每一对\((x_i,y_i,z_i)\)绘制\(n\)条折线。
3.\(plot3(x,y,z,'opt')\)
该函数含选项,用法和先前类似。
4.\(fplot(fx,fy,fz,tlim)\)
该函数用于描绘参数方程,用法和先前类似。
三维曲面
1.\(mesh(X,Y,Z,c)||surf(X,Y,Z,c)\)
已知自变量的平面范围,设\(x\)为自变量\(x\)坐标的所有取值,\(y\)为自变量\(y\)坐标的所有取值,X矩阵为平面内每个点的x坐标,Y矩阵为平面内每个点的y坐标。
那么调用如下命令即可算出X,Y:
[X,Y]=meshgird(x,y);
然后利用函数算出平面内每一个点的\(z\)坐标,记为\(Z\)
调用\(mesh(X,Y,Z,c)\)或\(surf(X,Y,Z,c)\)即可生成三维曲面,其中\(c\)是参数,用于表示不同高度下曲面的颜色。
注意\(mesh\)函数生成的曲面,线条有颜色;\(surf\)函数生成的曲面,曲面有颜色。
其他类似函数:\(meshc\)有等高线,\(meshz\)有底座,\(surfc\)有等高线,\(surfl\)有光照效果
2.\(sphere(n)\)
\([X,Y,Z]=sphere(n)\)绘制出圆心为原点,半径为\(1\)的单位球面,参数\(n\)决定了球面的圆滑程度,默认\(20\),\(n\)越大越圆滑。
3.\(cylinder(R,n)\)
\([X,Y,Z]=cylinder(R,n)\)表示柱面,\(R\)是向量,存放各个等间隔高度圆上的半径,\(n\)表示圆柱圆周上有\(n\)个间隔点。
4.\(peaks函数\)
\(peaks\)函数可生成多峰函数图像