MATLAB绘图相关

397 阅读8分钟

本文已参与「新人创作礼」活动, 一起开启掘金创作之路。

XY坐标图

函数名称用处示例
plot(x,y)形成一个简单的二维坐标图,点与点之间直线连接
plot(x1,y1,x2,y2,……)在一个坐标图上绘制多条曲线
grid on\off显示或关闭画图中的网线
title(‘AAAAA’)显示标题为AAAAA
xlabel(‘AAAAA’)显示x轴标注为AAAAA
ylabel(‘AAAAA’)显示y轴标注为AAAAA
pause/pause(a)暂停直到按任意键/暂停a秒
figure(a)产生名称为Figure a的图形窗口,若不输入参数a,自动产生图形编号
hold on/off保持图形/覆盖原有图形(使用后可在一个坐标图上绘制多条曲线)
peaks(n)函数peaks是MATLAB中的双变量正态分布的实体模型函数,主要用于演示图形功能。若函数peaiks只有一个自变量n, 则会产生一个n x n的矩阵,函数peaks创建的矩阵可以作为函数Plot的自变量。
close关闭图形窗口

添加标题和坐标轴标注前需要创建图形,否则前面的标注会被删除

如果函数plot的输入参数是-一个单独的矩阵,则MATLAB对矩阵的每一-列单独绘图。 矩阵的行下标矢量作为x轴坐标(1:k),其中k是矩阵的行数,每列所对应的数值作为y轴坐标绘制曲线。此过程可绘出一一个等步长的图形,也就是线性图。

如果plot有两个自变量,一个是矢量, 一个是矩阵,那么,MATLAB按行依次绘制图形。即矩阵中的每一行与矢量对应画图

若plot输入参数为一个复数数组,则以实部为x轴,虚部为y轴绘图 若为两个复数数组,则忽略虚部,以第一个数组实部为x轴,第二个数组实部为y轴

坐标轴定标及图例标注

函数名称用处示例
axis使得图形坐标保持不变,再次输入取消
axis(a)输入参数a是一一个四维矢量, 分别定义了x轴和y轴的最小值和最大值,即[xmin, xmax, ymin, ymax]
legend('string1', 'string2', etc)添加图例,对不同曲线加以说明
text (x_ coordinate, y_ coordinate, 'string')在图形的不同位置添加文本框,输入参数为文本框的位置和内容
gtext( 'string')添加文本框,框的位置由鼠标操作确定,输入参数为文本框的内容

创建上标使用插字号^ 使用希腊字母:输入反斜杠\加字母名称,如“\alpha\beta\gamma"分别表示αβγ 创建下标使用下划线_ 多个字符(如正负号加数字)作为上下标需要加大括号{}把上下标括起来

子图

函数名称用处示例
subplot(a,b,c)把图形窗口分为a*b个小窗口,并在第p个小窗口绘制图形

极坐标图

函数名称用处示例
polar(theta,r)输入参数为角度(一般为弧度)及半径

对数坐标图

函数名称用处示例
semilogx(x,y)创建单对数坐标图,x轴为对数坐标,y轴为线性坐标
semilogy(x,y)创建单对数坐标图,x轴为线性坐标,y轴为对数坐标
loglog(x,y)创建双对数坐标图

若数据中有负数或0,会提示错误,并且绘出无错误点的图

条形图与饼图

函数名称用处示例
bar (х)若x为矢量,则绘制垂直条形图;若x为二维矩阵,则按行分组显示
barh(x)若x为矢量,则绘制水平条形图。若x为_维矩阵,则按行分组显示
bar3 (x)绘制三维条形图
bar3h(x)绘制三维水平图
pie(x)绘制饼图。矩阵x的元素用饼图中的一部分表示
pie3 (x)绘制三维饼图。矩阵x中的元素用饼图的一部分表示
hist (х)绘制柱状图

柱状图

函数名称用处示例
hist(x,y)将数据从大到小等分为y份(若只输入参数x则为10份)通过柱状图显示出数据的发布情况

双y轴图

函数名称用处示例
plotyy(x1,y1.x2,y2)左右两种刻度线对应两种曲线

函数绘图

函数名称用处示例
fplot('关于x的函数',[x的取值范围])

matlab语法,sin^2(t)应为sin2(t). ^2

三维绘图

函数名称用处示例
plot3(x,y,z)在三维空间绘制曲线图
zlabel('AAAAA')z轴标注AAAAA
come3(x, y, z)绘制具有动画效果的三维线图
mesh(z)或mesh(x, y, z)绘制网格曲面图,若自变量为m*n的二维矩阵,则元素位置为x,y轴坐标,数值为z轴坐标,若为三个坐标x,y,z,则矢量x的元素个数与矩阵z的列数相同,矢量y的元素个数与矩阵z的行数相同
surf(z)或surf(x, y, z)与函数mesh类似,绘制表面图,但可以着色(使用下面三个函数)
Shading interp渲染曲面图中的颜色
Shading flat用纯色给每个网格着色
colormap (map_ name)按用户设定的颜色绘制曲面图
contour (z)或contour(x, y, z)绘制三维等高图
surfc(z)或surfc(x, y, z)同时绘制曲面图和等高图
pcolor(z)或pcolor(x, y, z)绘制伪色图(与等高图类似,但用带栅格的二维阴影图代替等高图中的轮廓线)

图形窗口菜单

函数名称用处示例
sphere函数生成单位球面的 x、y 和 z 坐标,以用于 surf 和 mesh。
sphere生成一个包含 20×20 个面的球面。
sphere(n)在当前图窗中绘制 n×n 球面的 surf 图。
sphere(ax,...)将在由 ax 指定的坐标区中,而不是在当前坐标区中创建球形。指定 ax 作为第一个输入参数。
[X,Y,Z] = sphere(...)在三个大小为 (n+1)×(n+1) 的矩阵中返回 n×n 球面的坐标。可以使用 surf(X,Y,Z) 或 mesh(X,Y,Z) 来绘制该球面

以 sphere(4)及 sphere(5)为例: 在这里插入图片描述

在图形窗口中,选择Insert可以添加坐标轴标注、图形标题、说明和文本框等。选择Tools可以改变图形的外观,例如放大或缩小,改变长宽比等。菜单栏下面是图形工具栏,可以选择相应的图标对图形进行各种编辑。

程序一旦返回,使用菜单编辑图形的所有改动都会复原。

peaks 是从高斯分布转换和缩放得来的包含两个变量的函数,在演示 mesh、surf、pcolor、contour 等函数中很有用。

函数名称用处示例
Z = peaks返回一个 49×49 矩阵。Z = peaks(n); 返回一个 n×n 矩阵。
Z = peaks(V)返回一个 n×n 矩阵,其中 n= length(V)。
Z = peaks(X,Y)在给定的 X 和 Y(必须大小相同)处计算 peaks 并返回大小相同的矩阵。
peaks(...)(无输出参数)使用 surf 绘制 peaks 函数。使用先前语法中的任意输入参数组合。
[X,Y,Z] = peaks(...)返回另外两个矩阵 X 和 Y 用于参数绘图,例如 surf(X,Y,Z,del2(Z))。如未作为输入参数给出,基础矩阵 X 和 Y 是[X,Y] = meshgrid(V,V) ,其中 V 是给定向量,或者 V 是长度为 n 的向量,其元素从 -3 到 3 均匀间隔。如果未给出输入参数,默认的 n 是 49。
axis equal将每个坐标轴设置为均匀的刻度间隔,在M文件中使用能够保存所做的修改

使用属性编辑器可以添加坐标轴标注、图形标题和色条,也可以在Insert菜单中进行设置。这种方法具有很好的交互性,可以随时调整图形的外观。但这种方法存在的问题是再次运行程序时,所有的修改都会无法保存。

在工作区中创建图形

       MATLAB可以在工作区中创建图形。在工作区窗口中,先选择变量,然后打开绘图图标的下拉菜单。MATLAB能根据变量中的数据列出几种常用的绘图方式,选择合适的方式就可以在图形窗口生成相应的图形。绘制图形时可以在菜单中选择More pos.... 就会弹出个新的窗口。新窗口中列出了所有可能的绘图方式供用户选择。从MATLAB内置的seamount数据集中导出矩阵x和y,绘制矩阵x和y的散点图。

       如果绘制图形所需的变量不止一个, 则首先选中第一个变量,按Cr键选择其余的变量。然后,按照5.5节介绍的方法可以对图形进行编辑。这种互动的绘图环境有助程序的开发和测试。

图片的保存

       在MATLAB中有以下几种保存图形的方法:

  1. 如果程序代码保存在M文件中,直接运行程序就可以绘制出图形。

  2. 在菜单中选择Save as,就会出现下列选项:

    1. 保存为MATLAB特有的.fig文件。在当前路径中双击文件名,就可以打开图形。

    2. 保存为标准的图片格式,例如,jpg 格式或.emf格式。这种格式的图片可以在任何文档中使用,比如Word文档。

  3. 在Edit中选择copy figure,把图形粘贴到其他文件中。

  4. 打开文件菜单,创建M文件,重新生成图形。