您的位置:

matlab二维图绘制方法探究

一、基础绘图函数

在matlab中,基础的二维图绘制函数有plot、scatter、stem等。其中,plot函数可以绘制折线图、曲线图、散点图等,通过设置参数可以更改颜色、线型、线宽等,如下面代码所示:


x = linspace(-pi,pi,100);
y1 = sin(x);
y2 = cos(x);
plot(x,y1,'r--','LineWidth',2);
hold on;
plot(x,y2,'b:','LineWidth',2);
xlabel('x');
ylabel('y');
title('plot函数绘制的正弦和余弦曲线');
legend('y1=sin(x)','y2=cos(x)');

上述代码通过linspace生成x轴坐标,通过sin和cos函数生成y轴坐标,然后使用plot函数进行绘制。其中,'r--'和'b:'分别代表红色虚线和蓝色点线的线型,'LineWidth'参数代表线宽,'hold on'表示在同一图中绘制多个图形,'xlabel'和'ylabel'设置x轴、y轴的标签,'title'设置图形的标题,'legend'用于标注图线的含义。

scatter函数可以绘制散点图,与plot函数类似,可以通过设置参数修改颜色、大小、形状等,如下所示的代码:


x = rand(1,100);
y = rand(1,100);
size = 30*rand(1,100);
color = rand(1,100);
scatter(x,y,size,color,'filled');
xlabel('x');
ylabel('y');
title('scatter函数绘制的散点图');

上述代码通过rand函数生成x、y坐标和大小、颜色参数,然后使用scatter函数绘制。其中,'filled'表示填充散点,'xlabel'和'ylabel'设置x轴、y轴的标签,'title'设置图形的标题。

二、高级绘图函数

除了基础绘图函数外,matlab还提供了许多高级绘图函数,如contour、quiver、surf等。这些函数可以绘制等高线图、矢量图、三维曲面图等,可以更直观地显示数据。

contour函数可绘制二维等高线图,代码示例如下:


[X,Y] = meshgrid(-2:.2:2,-2:.2:2);
Z = X.*exp(-X.^2-Y.^2);
contour(X,Y,Z);
xlabel('x');
ylabel('y');
title('contour函数绘制的等高线图');

上述代码中,meshgrid函数生成x、y矩阵,用于表示坐标点。Z表示对应每个坐标点的高度,通过contour函数绘制等高线图。'xlabel'和'ylabel'设置x轴、y轴的标签,'title'设置图形的标题。

quiver函数可绘制矢量图,用于表示数据的方向和大小,代码示例如下:


x = linspace(-2*pi,2*pi,20);
y = linspace(-2*pi,2*pi,20);
[X,Y] = meshgrid(x,y);
u = cos(X).*sin(Y);
v = sin(X);
quiver(X,Y,u,v);
xlabel('x');
ylabel('y');
title('quiver函数绘制的矢量图');

上述代码中,meshgrid函数生成x、y矩阵,用于表示坐标点。u、v表示对应每个坐标点的矢量大小,在quiver函数中绘制。'xlabel'和'ylabel'设置x轴、y轴的标签,'title'设置图形的标题。

surf函数可绘制三维曲面图,代码示例如下:


[X,Y] = meshgrid(-2:.2:2,-2:.2:2);
Z = X.*exp(-X.^2-Y.^2);
surf(X,Y,Z);
xlabel('x');
ylabel('y');
zlabel('z');
title('surf函数绘制的三维曲面图');

上述代码中,meshgrid函数生成x、y矩阵,用于表示坐标点。Z表示对应每个坐标点的高度,通过surf函数绘制三维曲面图。'xlabel'、'ylabel'、'zlabel'设置x轴、y轴、z轴的标签,'title'设置图形的标题。

三、绘制特殊图形

在matlab中,还可以使用一些绘图函数绘制特殊图形,如饼图、雷达图、极坐标图等。

饼图可以用pie函数绘制,代码示例如下:


data = [20 30 40 10];
pie(data);
title('pie函数绘制的饼图');

上述代码中,data表示每个扇形的数据大小,通过pie函数绘制。'title'设置图形的标题。

雷达图可以用polarplot函数绘制,代码示例如下:


theta = linspace(0,2*pi,6);
data = [1 3 2 4 5];
polarplot(theta,data);
title('polarplot函数绘制的雷达图');

上述代码中,theta表示扇形角度,data表示每个角度的数据大小,通过polarplot函数绘制。'title'设置图形的标题。

极坐标图可以用polaraxes函数绘制,先使用polaraxes函数创建极坐标轴,再使用plot、scatter等函数进行绘制,代码示例如下:


theta = linspace(0,2*pi,50);
rho = 2*sin(2*theta).*cos(2*theta);
ax = polaraxes();
scatter(ax,theta,rho);
title('polaraxes函数绘制的极坐标图');

上述代码中,theta表示角度,rho表示对应角度的数据大小,通过polaraxes函数创建极坐标轴,再使用scatter函数在极坐标系上绘制散点图。'title'设置图形的标题。