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

时间:2021-11-01 00:11:48

快速入门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);

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

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');

结果如下:

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

2.3 修改点的形状

参数 形状 图标
- solid
o circle 【matlab 基础篇 03】一文带你全面了解 plot 绘图函数的使用(超详细+图文并茂)
x x-mark 【matlab 基础篇 03】一文带你全面了解 plot 绘图函数的使用(超详细+图文并茂)
+ plus 【matlab 基础篇 03】一文带你全面了解 plot 绘图函数的使用(超详细+图文并茂)
* star 【matlab 基础篇 03】一文带你全面了解 plot 绘图函数的使用(超详细+图文并茂)
s square 【matlab 基础篇 03】一文带你全面了解 plot 绘图函数的使用(超详细+图文并茂)
d diamond 【matlab 基础篇 03】一文带你全面了解 plot 绘图函数的使用(超详细+图文并茂)
v triangle (down) 【matlab 基础篇 03】一文带你全面了解 plot 绘图函数的使用(超详细+图文并茂)
^ triangle (up) 【matlab 基础篇 03】一文带你全面了解 plot 绘图函数的使用(超详细+图文并茂)
< triangle (left) 【matlab 基础篇 03】一文带你全面了解 plot 绘图函数的使用(超详细+图文并茂)
> triangle (right) 【matlab 基础篇 03】一文带你全面了解 plot 绘图函数的使用(超详细+图文并茂)
p pentagram 【matlab 基础篇 03】一文带你全面了解 plot 绘图函数的使用(超详细+图文并茂)
h hexagram 【matlab 基础篇 03】一文带你全面了解 plot 绘图函数的使用(超详细+图文并茂)

将点形状显示为六边形

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

结果如下:

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

相关参数:

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

2.4 修改线的形状

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

LineWidth的参数为线宽;

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

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

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

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

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

2.5 多个参数修改

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

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

结果如下:

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

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);

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

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

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);

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

4 plot3

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

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

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');

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

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')

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

这是官方的demo,比较复杂;

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

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

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

7 at last

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


作者能力有限,文中难免有错误和纰漏之处,请大佬们不吝赐教

创作不易,如果本文帮到了您;

请帮忙点个赞