购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

第3章
MATLAB数据可视化基础

本章导读

俗话说“一图胜万语”,在科学研究、工程上有图则一目了然,无图搭配则如隔鞋搔痒,很难窥得全貌,这也是一般工作偏重于图说的原因。

数据可视化,即数据绘图的目的如果是显示数据的走向或变化趋势,则可采用不同的观察角度,使数据的内容更加明显。就图的特性分类,可包括块状图、柱状图、点示图、线示图等,而就其空间而言,又可分为二维或三维图,前者取其实用性,后者取其美观性。

MATLAB提供了强大的图形功能,利用程序与绘图结合,可以将结果计算以图形显现,有助于了解计算过程以及分析计算结果,这在科学、工程中都非常重要。

3.1 数据绘图的基本步骤

在MATLAB中绘制图形,通常采用以下七个步骤。

(1)准备数据

准备好绘图需要的横坐标变量和纵坐标变量数据。

(2)设置当前绘图区

在指定的位置创建新的绘图窗口,并自动以此窗口的绘图为当前绘图区。

(3)绘制图形

创建坐标轴,指定叠加绘图模式,绘制函数曲线。

(4)设置图形中曲线和标记点格式

设置图形中的线宽、线型、颜色和标记点的形状、大小、颜色等。

(5)设置坐标轴和网格线属性

将坐标轴的范围设置在指定曲线

(6)标注图形

对图形进行标注,包括在图形中添加标题、坐标轴标注、文字标注等。

(7)保存和导出图形

按指定文件格式、属性保存或导出图形,以备后续使用。

上述绘制流程中,需要注意的是:

①上面7个步骤的顺序也不是完全固定的,尤其是其中对图形进行修饰标注的4、5、6步骤,完全可以改变顺序;

②MATLAB中对于图形中的曲线和标记点格式有默认的设置,这在一般情况下是可以满足使用者需要的,因此对于只是想大概察看一下数据分布的用户,只须进行第1步和第3步工作就可以了。

3.2 在工作空间直接绘图

在MTLAB中的,还有一种较为简单的绘图方法,就是直接利用工作空间的数据就可以绘出想要的图形。这种方法使用起来非常简单,只要点击鼠标选中你要的绘图的类型就可以绘制了。

这种绘图方法的基本过程是:在工作空间中,首先用鼠标左键,选中要绘制图形的数据变量,可以看到变量变成蓝颜色,然后鼠标左键单击工作空间的 图标,并且选择图形的类型,就可以绘出想要的图形了。

如果绘制的是多变量数据,使用Shift键全部选中后,再点击绘图图表的图形类别,就可以了。MATLAB根据变量列出不同种类的图形类别包括plot、bar、stem、stairs、area、pie、hist和其他类型图形。

【例3-1】 工作空间直接作图法使用实例。利用工作空间绘制y=sinx正弦曲线。

解: 在命令窗口中输入以下命令

运行后,在工作空间中将生成变量x和y:

在工作空间中,可以看到,数据名、数据类型、数据最小值和数据最大值,然后鼠标右键单击y变量,则数据变成蓝颜色,如果此时不选中x变量,直接单击 后,选择plot(y)便可绘制图形。操作界面及绘制的图形如3-1所示。

图3-1 y=sin(x)单变量工作空间图形

如果选中y以后,按住Shift键,继续选中x后,再选择plot(y)便可绘制图形。操作界面及绘制的图形如3-2所示。读者可以比较两图的差异。

图3-2 y=sin(x)双变量工作空间波形图

3.3 多维数据绘图

MATLAB提供了丰富的绘图功能,在命令窗口中输入“help graph2d”可得到所有画二维图形的命令;输入“help graph3d”可得到所有画三维图形的命令。

3.3.1 二维图形

二维图形的基本绘图命令是:

其中,x1与y1给出的数据分别为x轴与y轴坐标值,option1为选项参数,以逐点连折线的方式绘制1个二维图形;同时类似地绘制第二个二维图形。

这是plot命令的完全格式,在实际应用中可以根据需要进行简化。

比如plot(x,y)、plot(x,y,option),选项参数option定义了图形曲线的颜色(用表示颜色的英文单词的第一个字母表示,例如r表示红色、g表示绿色、b表示蓝色)、线型(例如#、*等)及标示符号,它由一对单引号括起来。

【例3-2】 二维图形绘制实例。利用plot(x)和多组变量的语法格式分别绘制当x∈[0,2π]时,y1=sin(x)、y2=cos(x)、y3=sin(x-0.1π)、y4=cos(x+0.1π)的二维图形,并比较单个变量图形和多组变量图像应用上的差异。

解: 在M文件编辑器中输入以下命令:

运行以上M代码程序,得到如图3-3所示的结果图形。

如果将程序中的plot(y1)替换成以下语句,即将3条曲线绘制在同一图中,将会得到如图3-4所示的结果图形。

图3-3 plot(y1)画线结果

图3-4 多组数据的plot结果

3.3.2 三维图形

1.三维曲线

MATLAB也提供了一个绘制三维折线或曲线的基本命令plot3,其常用的格式是:

该命令的各个参数的含义是:

(1)以x1、y1、z1所给出的数据分别设置x、y、z坐标值;

(2)option1为选项参数,以逐点连折线的方式绘制1个三维折线图形;

(3)以x2、y2、z2所给出的数据分别设置x、y、z坐标值;

(4)option2为选项参数,以逐点折线的方式绘制另一个三维折线图形。

plot3命令的使用与plot使用基本类似。

需要注意的是:

(1)plot3命令的功能及使用方法与plot命令的功能及使用方法相类似,它们的区别在于前者绘制出的是三维图形;

(2)plot3命令参数的含义与plot命令的参数含义相类似,它们的区别在于前者多了一个Z方向上的参数。同样,各个参数的取值情况及其操作效果也与plot命令相同。上面给出的plot3命令格式是一种完整的格式,在实际操作中,根据各个数据的取值情况,均可以有下述一种简单的书写格式:plot3(x,y,z)或plot3(x,y,z,option);

(3)选项参数option指明了所绘图中线条的线性、颜色以及各个数据点的表示记号;

(4)plot3命令使用的是以逐点连线的方法来绘制三维折线的,当各个数据点的间距较小时,也可利用它来绘制三维曲线。

在MATLAB中,除了可以绘制三维线性图形外,还可以绘制三维曲面。常见的绘制三维曲面的MATLAB函数有mesh和surf,下面分别介绍这两个函数的用法。

2.三维网格曲面

MATLAB中可以通过mesh函数绘制三维网格曲面图,该函数的常用格式有以下几种:

(1)mesh(X,Y,Z,C):参数X、Y、Z都为矩阵值,参数C表示网格曲面的颜色分布情况;

(2)mesh(X,Y,Z):参数X、Y、Z都为矩阵值,网格曲面的颜色分布与Z方向上的高度值成正比;

(3)mesh(x,y,Z,C):参数x和y为长度分别是n和m向量值,而参数Z是维数为m×n的矩阵,参数C表示网格曲面的颜色分布情况;

(4)mesh(x,y,Z):参数x和y为长度分别是n和m向量值,而参数Z是维数为m×n的矩阵,网格曲面的颜色分布与Z方向上的高度值成正比;

(5)mesh(Z,C):参数Z是维数为m×n的矩阵,参数C表示网格曲面的颜色分布情况;

(6)mesh(Z):参数Z是维数为m×n的矩阵,网格曲面的颜色分布与Z方向上的高度值成正比。

3.三维阴影曲面

基本的三维阴影曲面绘制采用surf函数,调用这种函数的格式是:

(1)surf(X,Y,Z,C):参数X、Y、Z都为矩阵值,参数C表示网格曲面的颜色分布情况;

(2)surf(X,Y,Z):参数X、Y、Z都为矩阵值,网格曲面的颜色分布与Z方向上的高度值成正比;

(3)surf(x,y,Z,C):参数x和y为长度分别是n和m向量值,而参数Z是维数为m×n的矩阵,参数C表示网格曲面的颜色分布情况;

(4)surf(x,y,Z):参数x和y为长度分别是n和m向量值,而参数Z是维数为m×n的矩阵,网格曲面的颜色分布与Z方向上的高度值成正比;

(5)surf(Z,C):参数Z是维数为m×n的矩阵,参数C表示网格曲面的颜色分布情况;

(6)surf(Z):参数Z是维数为m×n的矩阵,网格曲面的颜色分布与Z方向上的高度值成正比。

在surf命令中,各个四边形表面的颜色分布方式可由shading命令来指令:

shading faceted——表示截面式颜色分布方式;

shading interp——表示插补式颜色分布方式;

shading flat——表示平面式颜色分布方式。

【例3-3】 三维曲线绘制函数使用实例。利用plot3函数绘制三维螺旋线图形。其中y=sint、y=cost,z=t,t∈[0,8π]。

解: 在M文件编辑器中输入下列程序代码

执行该程序后,显示结果如图3-5所示:

图3-5 三维螺旋线图形

【例3-4】 三维网格曲面图绘制应用实例。利用函数mesh在笛卡儿坐标系中绘制以下函数的网格曲面图:f(x,y)=

解: 在M文件编辑器中输入下列程序代码

运行以上程序,得到函数的三维网格图形如图3-6所示。

图3-6 三维网格曲面图

【例3-5】 阴影曲面绘制函数surf使用实例。利用surf函数绘制三维函数f(x,y)= 的三维阴影曲面。

解: 在M文件编辑器中输入以下程序代码:

保存并运行该程序,显示结果如图3-7所示。

图3-7 三维阴影曲面

3.4 图形的修饰

图形绘制以后,需要对图形进行标注、说明等修饰性的处理,以增加图的可读性,使之能反映出更多的信息。

可以利用Figure窗口的菜单和工具栏对图形进行标注、修饰等,操作非常简单,这部分内容请参加前面的1.4.6节。

此外,还可以利用MATLAB自带的函数来进行图形的修饰。

1.选择图形窗口的命令有:

●打开不同的图形窗口命令figure

figure(1);figure(2);…;figure(n),它用来打开不同的图形窗口,以便绘制不同的图形。

●图形窗口拆分命令subplot

subplot(m,n,p):分割图形显示窗口,m表示上下分割个数,n表示左右分割个数,p表示子图编号。

2.坐标轴相关的命令

在默认情况下MATLAB自动选择图形的横、纵坐标的比例,当然也可以用axis命令控制,常用的命令介绍如下。

●axis([xmin xmax ymin ymax]):[xmin xmax ymin ymax]中分别给出x轴和y轴的最大值、最小值。

●axis equal:x轴和y轴的单位长度相同。

●axis square:图框呈方形。

●axis off:清除坐标刻度。

在某些应用中,还会用到半对数坐标轴,MATLAB中常用的对数坐标绘制命令有介绍如下。

●semilogx:绘制以x轴为对数坐标(以10为底)、y轴为线性坐标的半对数坐标图形。

●semilogy:绘制以y轴为对数坐标(以10为底)、x轴为线性坐标的半对数坐标图形。

●loglog:绘制全对数坐标绘图,即x、y轴均为对数坐标(以10为底)。

3.文字标示命令

●常用的文字标示命令介绍如下。

●text(x,y,ˈ字符串ˈ):在图形的指定坐标位置(x,y)处标示单引号括起来的字符串。

●gtext(ˈ说明文字ˈ):利用鼠标在图形的某一位置标示说明文字。执行完绘图命令后再执行gtext(ˈ说明文字ˈ)命令,就可在屏幕上得到一个光标,然后用鼠标选择说明文字的位置。

●title(ˈ字符串ˈ):在所画图形的最上端显示说明该图形标题的字符串;

●xlabel(ˈ字符串ˈ)、ylabel(ˈ字符串ˈ)、zlabel(ˈ字符串ˈ):设置x、y、z坐标轴的名称。输入特殊的文字需要用反斜杠(\)开头。

●legend(ˈ字符串1ˈ,ˈ字符串2ˈ,…,ˈ字符串nˈ):在屏幕上开启一个小视窗,然后依据绘图命令的先后次序,用对应的字符串区分图形上的线。

4.在图形上添加或删除栅格命令

常用的栅格操作命令介绍如下。

●grid:给图形加上栅格线。

●grid on:给当前坐标系加上栅格线。

●grid off:从当前坐标系中删去栅格线。

●grid:交替转换命令,即执行一次,转变一个状态(相当于grid on、grid off)。

5.图形保持或覆盖命令

常用的图形保持和覆盖的命令介绍如下。

●hold on:把当前图形保持在屏幕上不变,同时允许在这个坐标内绘制另外一个图形。

●hold off:使新图覆盖旧图。

hold命令可以保持当前的图形,并且防止删除和修改比例尺。

hold命令是一个交替转换命令,即执行一次,转变一个状态(相当于hold on、hold off)。

注意

MATLAB默认为hold off,这时的操作会修改图形的属性的,因此需要在plot之前加上hold on。

6.应用型绘图命令

应用型绘图命令常用于数值统计分析或离散数据处理,常用的应用型绘图命令有介绍如下。

●bax(x,y);绘制对应于输入x和输出y的高度条形图。

●hist(y,x);绘制x在以y为中心的区间中分布的个数条形图。

●stairs(x,y);绘制y对应于x的梯形图。

●stem(x,y);绘制y对应于x的散点图。

注意

对于图形的属性编辑同样可以在图形窗口上直接进行,但图形窗口关闭之后编辑结果不会保存。

【例3-6】 绘图命令使用实例。绘制[0,4π]区间上的x1=10sint和x2=5cost曲线,并要求:

(1)x1曲线的线形为点画线、颜色为红色、数据点标记为加号;x2曲线的虚线、颜色为蓝色、数据点标记为星号;

(2)标示坐标轴的显示范围和刻度线、添加栅格线;

(3)标注坐标轴名称、标题、相应文本。

解: MATLAB程序代码如下所示。

运行后,输出结果如图3-8所示。

图3-8 例3-6的输出图

3.5 本章小结

MATLAB具有强大的数据可视化功能,可以方便地对数据进行绘图。本章详细讲解了MATLAB中图形绘制的流程、函数、工具,图形修饰的方法,以及特殊坐标轴的绘制和多种特殊绘图函数。

本章的例子只用到了简单的绘图函数和标注函数的组合,都是维绘图中最基本最经典的实例,读者都应该仔细阅读体会,最好实践练习。 DAtGvyPOqOJOgD6GOk977z5JcJjEmom4Zon+ksww0ZX7XYg+DSGtBw3QNM7tukQ0

点击中间区域
呼出菜单
上一章
目录
下一章
×