Matlab二维绘图函数plot用法

4.4
(5)

今天,给各位系统的介绍下Matlab中使用plot绘图中的常见方法,主要包括单个线图绘制、多条线图绘制、矩阵线图创建、线型改变、线型颜色标记、特定数据标记、线宽大小颜色、标题轴标签、线条修改、圆形绘制等常用方法。

非常详细的Matlab plot函数语法介绍,实例引用,结果展示

Matlab二维绘图函数plot用法

首先,我们给出Matlab中关于plot函数的帮助文本如下:

>> help plot
 plot   Linear plot. 
    plot(X,Y) plots vector Y versus vector X. If X or Y is a matrix,
    then the vector is plotted versus the rows or columns of the matrix,
    whichever line up.  If X is a scalar and Y is a vector, disconnected
    line objects are created and plotted as discrete points vertically at
    X.
 
    plot(Y) plots the columns of Y versus their index.
    If Y is complex, plot(Y) is equivalent to plot(real(Y),imag(Y)).
    In all other uses of plot, the imaginary part is ignored.
 
    Various line types, plot symbols and colors may be obtained with
    plot(X,Y,S) where S is a character string made from one element
    from any or all the following 3 columns:
 
           b     blue          .     point              -     solid
           g     green         o     circle             :     dotted
           r     red           x     x-mark             -.    dashdot 
           c     cyan          +     plus               --    dashed   
           m     magenta       *     star             (none)  no line
           y     yellow        s     square
           k     black         d     diamond
           w     white         v     triangle (down)
                               ^     triangle (up)
                               <     triangle (left)
                               >     triangle (right)
                               p     pentagram
                               h     hexagram
                          
    For example, plot(X,Y,'c+:') plots a cyan dotted line with a plus 
    at each data point; plot(X,Y,'bd') plots blue diamond at each data 
    point but does not draw any line.
 
    plot(X1,Y1,S1,X2,Y2,S2,X3,Y3,S3,...) combines the plots defined by
    the (X,Y,S) triples, where the X's and Y's are vectors or matrices 
    and the S's are strings.  
 
    For example, plot(X,Y,'y-',X,Y,'go') plots the data twice, with a
    solid yellow line interpolating green circles at the data points.
 
    The plot command, if no color is specified, makes automatic use of
    the colors specified by the axes ColorOrder property.  By default,
    plot cycles through the colors in the ColorOrder property.  For
    monochrome systems, plot cycles over the axes LineStyleOrder property.
 
    Note that RGB colors in the ColorOrder property may differ from
    similarly-named colors in the (X,Y,S) triples.  For example, the 
    second axes ColorOrder property is medium green with RGB [0 .5 0],
    while plot(X,Y,'g') plots a green line with RGB [0 1 0].
 
    If you do not specify a marker type, plot uses no marker. 
    If you do not specify a line style, plot uses a solid line.
 
    plot(AX,...) plots into the axes with handle AX.
 
    plot returns a column vector of handles to lineseries objects, one
    handle per plotted line. 
 
    The X,Y pairs, or X,Y,S triples, can be followed by 
    parameter/value pairs to specify additional properties 
    of the lines. For example, plot(X,Y,'LineWidth',2,'Color',[.6 0 0]) 
    will create a plot with a dark red line width of 2 points.
 
    Example
       x = -pi:pi/10:pi;
       y = tan(sin(x)) - sin(tan(x));
       plot(x,y,'--rs','LineWidth',2,...
                       'MarkerEdgeColor','k',...
                       'MarkerFaceColor','g',...
                       'MarkerSize',10)

常见语法

plot(X,Y)
plot(X,Y,LineSpec)
plot(X1,Y1,...,Xn,Yn)
plot(X1,Y1,LineSpec1,...,Xn,Yn,LineSpecn)
plot(Y)
plot(Y,LineSpec)
plot(___,Name,Value)
plot(ax,___)
h = 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’)。

将 x 创建为由 0 和 2π 之间的线性间隔值组成的向量。在各值之间使用递增量 π/100。将 y 创建为 x 的正弦值。创建数据的线图。

x = 0:pi/100:2*pi;
y = sin(x);
plot(x,y)
Matlab二维绘图函数plot用法

多线条绘制

将 x 定义为 100 个介于 −2π 和 2π 之间的线性间隔值。将 y1 和 y2 定义为 x 的正弦和余弦值。创建上述两个数据集的线图。

x = linspace(-2*pi,2*pi);
y1 = sin(x);
y2 = cos(x);
figure
plot(x,y1,x,y2)
Matlab二维绘图函数plot用法

二维数组绘图

将 Y 定义为 magic 函数返回的 4×4 矩阵,创建 Y 的二维线图。MATLAB® 将矩阵的每一列绘制为单独的线条。

Y = magic(4)
figure
plot(Y)
Y = 4×4
    16     2     3    13
     5    11    10     8
     9     7     6    12
     4    14    15     1
Matlab二维绘图函数plot用法

指定线型

绘制三条正弦曲线,每条曲线之间存在较小的相移。第一条曲线使用默认的线型。为第二条曲线指定虚线样式,第三条曲线指定点式线样式。

x = 0:pi/100:2*pi;
y1 = sin(x);
y2 = sin(x-0.25);
y3 = sin(x-0.5);
figure
plot(x,y1,x,y2,'--',x,y3,':')
Matlab二维绘图函数plot用法

指定线型、颜色和标记

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

x = 0:pi/10:2*pi;
y1 = sin(x);
y2 = sin(x-0.25);
y3 = sin(x-0.5);
figure
plot(x,y1,'g',x,y2,'b--o',x,y3,'c*')
Matlab二维绘图函数plot用法

在特定的数据点显示标记

通过指定标记符号并将 MarkerIndices 属性设置为名称-值对组,创建一个线图并每隔四个数据点显示一个标记。

x = linspace(0,10);
y = sin(x);
plot(x,y,'-o','MarkerIndices',1:5:length(y))

Matlab2016中无此功能

指定线宽、标记大小和标记颜色

创建线图并使用 LineSpec 选项指定带正方形标记的绿色虚线。使用 Name,Value 对组来指定线宽、标记大小和标记颜色。将标记边颜色设置为蓝色,并使用 RGB 颜色值设置标记面颜色。

x = -pi:pi/10:pi;
y = tan(sin(x)) - sin(tan(x));
figure
plot(x,y,'--gs',...
    'LineWidth',2,...
    'MarkerSize',10,...
    'MarkerEdgeColor','b',...
    'MarkerFaceColor',[0.5,0.5,0.5])
Matlab二维绘图函数plot用法

添加标题和轴标签

使用 linspace 函数将 x 定义为 0 到 10 之间 150 个值组成的向量。将 y 定义为 x 的余弦值。

x = linspace(0,10,150);
y = cos(5*x);

创建余弦曲线的二维线图。使用 RGB 颜色值将线条颜色更改为蓝绿色。使用 titlexlabel 和 ylabel 函数为图形添加标题和轴标签。

figure
plot(x,y,'Color',[0,0.7,0.9])
title('2-D Line Plot')
xlabel('x')
ylabel('cos(5x)')
Matlab二维绘图函数plot用法

绘制持续时间并指定刻度格式

将 t 定义为 7 个介于 0 到 3 分钟之间的 duration 线性间隔值。绘制随机数据并使用 ‘DurationTickFormat’ 名称-值对组参数指定 duration 刻度线的格式。

t = 0:seconds(30):minutes(3);
y = rand(1,7);
plot(t,y,'DurationTickFormat','mm:ss')
Matlab二维绘图函数plot用法

指定线图的坐标区

从 R2019b 开始,您可以使用 tiledlayout 和 nexttile 函数显示分块图。调用 tiledlayout 函数以创建一个 2×1 分块图布局。调用 nexttile 函数创建一个坐标区对象,并将该对象返回为 ax1。通过将 ax1 传递给 plot 函数来创建顶部绘图。通过将坐标区传递给 title 和 ylabel 函数,为图添加标题和 y 轴标签。重复该过程以创建底部绘图。

% Create data and 2-by-1 tiled chart layout
x = linspace(0,3);
y1 = sin(5*x);
y2 = sin(15*x);
tiledlayout(2,1)
% Top plot
ax1 = nexttile;
plot(ax1,x,y1)
title(ax1,'Top Plot')
ylabel(ax1,'sin(5x)')
% Bottom plot
ax2 = nexttile;
plot(ax2,x,y2)
title(ax2,'Bottom Plot')
ylabel(ax2,'sin(15x)')

这一部分由于我还是2016版本的Matlab无法给出图片,可以参考官方的图片,文末会给出原文地址。

不过,我可以用subplot来实现这个功能:

% Create data and 2-by-1 tiled chart layout
x = linspace(0,3);
y1 = sin(5*x);
y2 = sin(15*x);
% Top plot
subplot(2,1,1)
plot(x,y1)
title('Top Plot')
ylabel('sin(5x)')
% Bottom plot
subplot(2,1,2)
plot(x,y2)
title('Bottom Plot')
ylabel('sin(15x)')
Matlab二维绘图函数plot用法

创建并修改线条

将 x 定义为 100 个介于 −2π 和 2π 之间的线性间隔值。将 y1 和 y2 定义为 x 的正弦和余弦值。为上述两个数据集分别创建线图,并在 p 中返回两个图形线条。

x = linspace(-2*pi,2*pi);
y1 = sin(x);
y2 = cos(x);
p = plot(x,y1,x,y2);
Matlab二维绘图函数plot用法

将第一个线条的线宽更改为 2。向第二行添加星形标记。使用圆点表示法设置属性。

p(1).LineWidth = 2;
p(2).Marker = '*';
Matlab二维绘图函数plot用法

绘制圆形

绘制以点 (4,3) 为中心以 2 为半径的圆。使用 axis equal 可沿每个坐标方向使用相等的数据单位。

r = 2;
xc = 4;
yc = 3;
theta = linspace(0,2*pi);
x = r*cos(theta) + xc;
y = r*sin(theta) + yc;
plot(x,y)
axis equal
Matlab二维绘图函数plot用法

有关plot的一些参数说明,我们会在后续文章中标注,今天基本的用法说明已经讲述完毕。

共计5人评分,平均4.4

到目前为止还没有投票~

很抱歉,这篇文章对您没有用!

让我们改善这篇文章!

告诉我们我们如何改善这篇文章?

文章目录

转载文章,原文出处:MathWorks官网,由古哥整理发布

如若转载,请注明出处:https://iymark.com/articles/425.html

(1)
微信公众号
古哥的头像古哥管理团队
上一篇 2020年10月16日 21:10
下一篇 2020年10月18日 14:38

你可能感兴趣的文章

发表回复

登录后才能评论
微信小程序
微信公众号