【matlab 基础篇 03】一文带你全面了解 plot 绘图函数的使用(超详细+图文并茂)

快速入门matlab,系统地整理一遍,如何你和我一样是一个新手,那么此文很适合你;

1 前言

如果你是和我一样的小白,强烈推荐看看这里,需要合理地利用官方的文档,通常我觉得官方文档是最好的,没有之一,在命令终端输入help 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相关的函数还有 plottools, semilogx, semilogy, loglog, plotyy, plot3, grid,title, xlabel, ylabel, axis, axes, hold, legend, subplot, scatter.

2 plot

2.1 显示正弦波

显示一个简单的正弦函数;

x=0:2*pi/100:2*pi;
y=sin(x);
plot(x,y);

在这里插入图片描述

2.2 修改颜色

参数 颜色
b blue
g green
r red
c cyan
m magenta
y yellow
k black
w white

下面修改为红色:

x=0:2*pi/100:2*pi;
y=sin(x);
plot(x,y,'r');

结果如下:
在这里插入图片描述

2.3 修改点的形状

参数 形状 图标
- solid
o circle 在这里插入图片描述
x x-mark 在这里插入图片描述
+ plus 在这里插入图片描述
* star 在这里插入图片描述
s square 在这里插入图片描述
d diamond 在这里插入图片描述
v triangle (down) 在这里插入图片描述
^ triangle (up) 在这里插入图片描述
< triangle (left) 在这里插入图片描述
> triangle (right) 在这里插入图片描述
p pentagram 在这里插入图片描述
h hexagram 在这里插入图片描述

将点形状显示为六边形

x=0:2*pi/20:2*pi;
y=sin(x);
plot(x,y,'h','MarkerSize',10);

结果如下:
在这里插入图片描述
相关参数:

  • MarkerEdgeColor:点边框颜色;
  • MarkerFaceColor:点表面颜色;
  • MarkerSize:点的大小;

2.4 修改线的形状

符号 形状
: dotted
-. dashdot
-- dashed
x=0:2*pi/20:2*pi;
y=sin(x);
plot(x,y,':','LineWidth',3);

LineWidth的参数为线宽;
在这里插入图片描述

x=0:2*pi/20:2*pi;
y=sin(x);
plot(x,y,'-.','LineWidth',3);

在这里插入图片描述

x=0:2*pi/20:2*pi;
y=sin(x);
plot(x,y,'--','LineWidth',3);

在这里插入图片描述

2.5 多个参数修改

下面修改多个参数属性显示一下正弦波;

x = 0:2*pi/100:2*pi;
y = sin(x);
plot(x,y,'--rs','LineWidth',2,...
                'MarkerEdgeColor','k',...
                'MarkerFaceColor','g',...
                'MarkerSize',10);

结果如下:
在这里插入图片描述

3 subplot

subplot的使用方法如下:

 subplot Create axes in tiled positions.
    H = subplot(m,n,p), or subplot(mnp), breaks the Figure window
    into an m-by-n matrix of small axes, selects the p-th axes for
    the current plot, and returns the axes handle.  The axes are
    counted along the top row of the Figure window, then the second
    row, etc.  For example,
 
        subplot(2,1,1), PLOT(income)
        subplot(2,1,2), PLOT(outgo)

通俗的讲:
subplot(行,列,index)

注意:plot函数要在subplot表明位置之后再调用。

3.1 2行1列

x=0:2*pi/20:2*pi;
y=sin(x);
subplot(2,1,1);
plot(x,y,'y','LineWidth',3);
subplot(2,1,2);
plot(x,y,'g','LineWidth',3);

需要将多个波形显示在同一张图中;

在这里插入图片描述

3.2 1行2列

x=0:2*pi/20:2*pi;
y=sin(x);
subplot(1,2,1);
plot(x,y,'y','LineWidth',3);
subplot(1,2,2);
plot(x,y,'g','LineWidth',3);

在这里插入图片描述

4 plot3

 t = 0:pi/50:10*pi;
 plot3(sin(t),cos(t),t);

在这里插入图片描述

5 title

  • title:图的标题;
  • xlabel:x轴标题;
  • ylabel:y轴标题;
    指定plot的标题,需要在plot调用之后在调用titlexlabelylabel
x=0:2*pi/20:2*pi;
y=sin(x);

subplot(1,2,1);

plot(x,y,'y','LineWidth',3);
title('yellow');
xlabel('yellow-x');
ylabel('yellow-y');
subplot(1,2,2);
plot(x,y,'g','LineWidth',3);
title('green');
xlabel('green-x');
ylabel('green-y');

在这里插入图片描述

6 legend

x = 0:.2:12;
plot(x,besselj(1,x),x,besselj(2,x),x,besselj(3,x));
legend('First','Second','Third','Location','NorthEastOutside')

b = bar(rand(10,5),'stacked'); colormap(summer); hold on
x = plot(1:10,5*rand(10,1),'marker','square','markersize',12,...
         'markeredgecolor','y','markerfacecolor',[.6 0 .6],...
         'linestyle','-','color','r','linewidth',2); hold off
legend([b,x],'Carrots','Peas','Peppers','Green Beans',...
          'Cucumbers','Eggplant')

在这里插入图片描述
这是官方的demo,比较复杂;

x=0:2*pi/20:2*pi;
y=sin(x);

plot(x,y,':','LineWidth',3);
legend('test1');

在这里插入图片描述
legend需要在plot之后调用,用于依次解释第一个plot的波形,如果一个plot里显示了两个波形,那legen中字符串也需要设置两个,分别依次对应plot中的波形;

7 at last

比较简单,matplotlib的功能和这个比较类似,总体来说,作为一个和博主一样的新手,要多看官方的help文档,然后平时使用的过程中慢慢就熟悉了,最后要多总结。


作者能力有限,文中难免有错误和纰漏之处,请大佬们不吝赐教
创作不易,如果本文帮到了您;
请帮忙点个赞 👍👍👍;
请帮忙点个赞 👍👍👍;
请帮忙点个赞 👍👍👍;

posted @ 2020-04-03 22:47  小麦大叔  阅读(2973)  评论(0编辑  收藏  举报