• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

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

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

快速入门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文档,然后平时使用的过程中慢慢就熟悉了,最后要多总结。


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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Rust中的匿名函数与闭包发布时间:2022-07-18
下一篇:
如何用matlab画正态分布曲线发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap