第2章 数据可视化函数

1.plot函数

在MATLAB中,提供了plot函数用于绘制二维数据图。该函数可以带有不同数目的参数。最简单的形式就是将数据传递给plot,但是线条的类型和颜色可以通过使用字符串来指定,这里用str表示。线型的默认类型是实线型。plot函数的一般语法格式为:

plot(X,Y):创建Y中数据对应X中数据的二维线图。

· 如果X和Y都是向量,则它们的长度必须相同。plot函数绘制Y对X的图。

· 如果X和Y均为矩阵,则它们的大小必须相同。plot函数绘制Y的列对X的列的图。

· 如果X或Y中的一个是向量而另一个是矩阵,则矩阵的各维中必须有一维与向量的长度相等。如果矩阵的行数等于向量长度,则plot函数绘制矩阵中的每一列对向量的图。如果矩阵的列数等于向量长度,则该函数绘制矩阵中的每一行对向量的图。如果矩阵为方阵,则该函数绘制每一列对向量的图。

· 如果X或Y之一为标量,而另一个为标量或向量,则plot函数会绘制离散点。但是,要查看这些点,必须指定标记符号,如plot(X,Y,'o')。

plot(X,Y,LineSpec):设置线型、标记符号和颜色,指定为包含符号的字符向量或字符串。符号可以按任意顺序显示。不需要同时指定所有三个特征(线型、标记和颜色)。表2-1~表2-3列出了线型、标记符号和颜色。

表2-1 线型

表2-2 标记符号

续表

表2-3 颜色

plot(X1,Y1,…,Xn,Yn):绘制多个X、Y对组的图,所有线条都使用相同的坐标区。

plot(X1,Y1,LineSpec1,…,Xn,Yn,LineSpecn):设置每个线条的线型、标记符号和颜色。可以混用X、Y、LineSpec三元组和X、Y对组,如plot(X1,Y1,X2,Y2,LineSpec2,X3,Y3)。

plot(Y):创建Y中数据对每个值索引的二维线图。

· 如果Y是向量,x轴的刻度范围是从1至length(Y)。

· 如果Y是矩阵,则plot函数绘制Y中各列对其行号的图。x轴的刻度范围是从1到Y的行数。

· 如果Y是复数,则plot函数绘制Y的虚部对Y的实部的图,使得plot(Y)等效于plot(real(Y),imag(Y))。

plot(Y,LineSpec):设置线型、标记符号和颜色。

plot(____,Name,Value):使用一个或多个Name-Value对组参数指定线条属性。可以将此选项与前面语法中的任何输入参数组合一起使用。名称-值对组设置将应用于绘制的所有线条。

plot(ax,___):将在由ax指定的坐标区中,而不是在当前坐标区(gca)中创建线条。选项ax可以位于前面的语法中的任何输入参数组合之前。

h=plot(____):返回由图形线条对象组成的列向量。在创建特定的图形线条后,可以使用h修改其属性。

【例2-1】绘制三条正弦曲线,每条曲线之间存在较小的相移。第一条正弦曲线使用绿色实线条,不带标记;第二条正弦曲线使用蓝色虚线,带圆形标记;第三条正弦曲线只使用青蓝色星号标记。

运行程序,效果如图2-1所示。

彩色图片(图2-1和图2-2)

图2-1 绘制三条正弦曲线

此外,在MATLAB中,还提供了相关函数用于为图形添加标注,如添加标题title、添加x轴坐标xlabel、添加y轴坐标ylabel、添加图例说明legend、为图形添加文字说明text函数等,下面通过一个实例来演示各函数的用法。

【例2-2】图窗内文字说明综合实例。

     x = 0:0.01*pi:pi*0.5;
     y = cos(x)+sqrt(-1)*sin(x);
     plot(y*2,'r','LineWidth',5);
     hold on;
     x = pi*0.5:0.01*pi:pi;
     y = cos(x)+sqrt(-1)*sin(x);
     plot(y*2,'y','LineWidth',5);
     hold on;
     x = -pi:0.01*pi:-pi*0.5;
     y = cos(x)+sqrt(-1)*sin(x);
     plot(y*2,'b','LineWidth',5);
     hold on; %图形添加
     x = -pi*0.5:0.01*pi:0;
     y = cos(x)+sqrt(-1)*sin(x);
     plot(y*2,'g','LineWidth',5);
     hold on;
     title('极坐标系') %添加标题
     text([1.5,-3,1.5,-3],[2,2,-2,-2],{'第一象限','第二象限','第三象限','第四象限'})
     legend({'第一象限[0 0.5\pi]','第二象限[0.5\pi,\pi]','第三象限[\pi,1.5\pi]','第四象限[1.5\pi,
     2\pi]'})
     xlim([-5 5]);
     ylim([-5,5]);
     plot([-4,4],[0,0],'k','LineWidth',3);
     hold on;
     plot([0 0],[-4 4],'k','LineWidth',3);
     hold on;
     axis off

运行程序,效果如图2-2所示。

图2-2 图形文字说明效果