MATLAB中subplot函数的语法与使用实例_第1页
MATLAB中subplot函数的语法与使用实例_第2页
MATLAB中subplot函数的语法与使用实例_第3页
MATLAB中subplot函数的语法与使用实例_第4页
MATLAB中subplot函数的语法与使用实例_第5页
已阅读5页,还剩7页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第MATLAB中subplot函数的语法与使用实例目录语法说明示例上部和下部子图子图的象限大小不同的子图将子图替换为空坐标区自定义位置上的子图创建包含极坐标区的子图创建后修改坐标区属性使子图成为当前坐标区将现有坐标区转换为子图将不同图窗中的坐标区转换为子图总结subplot函数的功能是在各个分块位置创建坐标区。

语法

subplot(m,n,p)

subplot(m,n,p,'replace')

subplot(m,n,p,'align')

subplot(m,n,p,ax)

subplot('Position',pos)

subplot(___,Name,Value)

ax=subplot(___)

subplot(ax)

说明

subplot(m,n,p)将当前图窗划分为mn网格,并在p指定的位置创建坐标区。MATLAB按行号对子图位置进行编号。第一个子图是第一行的第一列,第二个子图是第一行的第二列,依此类推。如果指定的位置已存在坐标区,则此命令会将该坐标区设为当前坐标区。

subplot(m,n,p,replace)删除位置p处的现有坐标区并创建新坐标区。

subplot(m,n,p,align)创建新坐标区,以便对齐图框。此选项为默认行为。

subplot(m,n,p,ax)将现有坐标区ax转换为同一图窗中的子图。

subplot(Position,pos)在pos指定的自定义位置创建坐标区。使用此选项可定位未与网格位置对齐的子图。指定pos作为[leftbottomwidthheight]形式的四元素向量。如果新坐标区与现有坐标区重叠,新坐标区将替换现有坐标区。

subplot(___,Name,Value)使用一个或多个名称-值对组参数修改坐标区属性。在所有其他输入参数之后设置坐标区属性。

ax=subplot(___)创建一个Axes对象、PolarAxes对象或GeographicAxes对象。以后可以使用ax修改坐标区。

subplot(ax)将ax指定的坐标区设为父图窗的当前坐标区。如果父图窗尚不是当前图窗,此选项不会使父图窗成为当前图窗。

示例

上部和下部子图

创建带有两个堆叠子图的图窗。在每个子图上绘制一条正弦波。

subplot(2,1,1);

x=linspace(0,10);

y1=sin(x);

plot(x,y1)

subplot(2,1,2);

y2=sin(5*x);

plot(x,y2)

如图所示:

子图的象限

创建一个分为四个子图的图窗。在每个子图上绘制一条正弦波并为每个子图指定标题。

subplot(2,2,1)

x=linspace(0,10);

y1=sin(x);

plot(x,y1)

title('Subplot1:sin(x)')

subplot(2,2,2)

y2=sin(2*x);

plot(x,y2)

title('Subplot2:sin(2x)')

subplot(2,2,3)

y3=sin(4*x);

plot(x,y3)

title('Subplot3:sin(4x)')

subplot(2,2,4)

y4=sin(8*x);

plot(x,y4)

title('Subplot4:sin(8x)')

如图所示:

大小不同的子图

创建一个包含三个子图的图窗。在图窗的上半部分创建两个子图,并在图窗的下半部分创建第三个子图。在每个子图上添加标题。

subplot(2,2,1);

x=linspace(-3.8,3.8);

y_cos=cos(x);

plot(x,y_cos);

title('Subplot1:Cosine')

subplot(2,2,2);

y_poly=1-x.^2./2+x.^4./24;

plot(x,y_poly,'g');

title('Subplot2:Polynomial')

subplot(2,2,[3,4]);

plot(x,y_cos,'b',x,y_poly,'g');

title('Subplot3and4:Both')

如图所示:

将子图替换为空坐标区

创建一个包含四个随机数据针状图的图窗。然后将第二个子图替换为空坐标区。

fork=1:4

data=rand(1,10);

subplot(2,2,k)

stem(data)

end

如图所示:

subplot(2,2,2,'replace')

如图所示:

自定义位置上的子图

创建包含两个未与网格位置对齐的子图的图窗。为每个子图指定一个自定义位置。

pos1=[0.10.30.30.3];

subplot('Position',pos1)

y=magic(4);

plot(y)

title('FirstSubplot')

pos2=[0.50.150.40.7];

subplot('Position',pos2)

bar(y)

title('SecondSubplot')

如图所示:

创建包含极坐标区的子图

创建包含两个极坐标区的图窗。在上部子图中创建极坐标线图,在下部子图中创建极坐标散点图。

figure

ax1=subplot(2,1,1,polaraxes);

theta=linspace(0,2*pi,50);

rho=sin(theta).*cos(theta);

polarplot(ax1,theta,rho)

ax2=subplot(2,1,2,polaraxes);

polarscatter(ax2,theta,rho)

如图所示:

创建后修改坐标区属性

创建带有两个子图的图窗。将Axes对象赋给变量ax1和ax2。将Axes对象指定为绘图函数的输入,以确保绘图函数在特定的子图中进行绘制。

ax1=subplot(2,1,1);

Z=peaks;

plot(ax1,Z(1:20,:))

ax2=subplot(2,1,2);

plot(ax2,Z)

如图所示:

通过设置Axes对象的属性来修改坐标区。更改上部子图的字体大小和下部子图的线宽。某些绘图函数可设置坐标区属性。先执行绘图函数,然后指定坐标区属性以免覆盖现有坐标区属性的设置。使用圆点表示法设置属性。

使子图成为当前坐标区

创建一个包含多个子图的图窗。将Axes对象存储在向量ax中。然后使第二个子图成为当前坐标区。创建一个线图并更改第二个子图的坐标轴范围。默认情况下,图形函数作用于当前坐标区。

fork=1:4

ax(k)=subplot(2,2,k);

subplot(ax(2))

x=linspace(1,50);

y=sin(x);

plot(x,y,'Color',[0.1,0.5,0.1])

title('SecondSubplot')

axis([050-11])

如图所示:

将现有坐标区转换为子图

创建一个线图。然后转换坐标区,使其成为图窗的下部子图。subplot函数使用原始坐标区所在的图窗。

x=linspace(1,10);

y=sin(x);

plot(x,y)

title('SinePlot')

如图所示:

ax=gca;

subplot(2,1,2,ax)

如图所示:

将不同图窗中的坐标区转换为子图

将位于不同图窗中的坐标区合并到包含子图的单个图窗中。

在两个不同的图窗中创建两个图。将Axes对象赋给变量ax1和ax2。将Legend对象赋给变量lgd。

figure

x=linspace(0,10);

y1=sin(x);

plot(x,y1)

title('LinePlot1')

如图所示:

ax1=gca;

figure

y2=2*sin(x);

plot(x,y2)

title('LinePlot2')

lgd=legend('2*Sin(x)');

如图所示:

ax2=gca;

使用copyobj创建两个Axes对象的副本。将复制的坐标区的父级指定为新图窗。由于图例和颜色栏不会随相关坐标区一起复制,因此请随坐标区一起复制图例。

fnew=figure;

ax1_copy=copyobj(ax1,fnew);

subplot(2,1,1,ax1_copy)

copies=copyobj([ax2,lgd],fnew);

ax2_copy=copies(1);

subplot(2,1,2,ax2_copy)

如图所示:

输入参数说明

m-网格行数

网格行数,指定为正整数。

n-网格列数

网格列数,指定为正整数。

p-新坐标区的网格位置

新坐标区的网格位置,指定为标量或正整数向量。

如果p是正整数标量,则subplot在网格位置p处创建一个子图。如果p是正整数向量,则subplot新建一个跨p中列出的网格位置的子图。

示例:subplot(2,3,1)在位置1处创建一个子图。

示例:subplot(2,3,[2,5])创建跨位置2和5的子图。

示例:subplot(2,3,[2,6])创建跨位置2、3、5和6的子图。

pos-新坐标区的自定义位置

新坐标区的自定义位置,指定为[leftbottomwidthheight]形式的四元素向量。

left和bottom元素指定子图的左下角相对于图窗的左下角的位置。width和height元素指定子图维度。

指定介于0和1之间的归一化值(基于图窗内界)。

注意:使用脚本创建子图时,在发出drawnow命令或MATLAB返回到等待用户命令之前,MATLAB不会最终确定Position属性值。在脚本刷新绘图或退出之前,子图的Position属性值会受到变化的影响。

ax-要设为当前坐标区或转换为子图的现有坐标区

要设为当前坐标区或转换为子图的现有坐标区,指定为Axes对象、PolarAxes对象、GeographicAxes对象或具有PositionConstraint属性的图形对象,如HeatmapChart对象。

要在子图位置创建空的极坐标区或地理坐标区,请将ax指定为polaraxes或geoaxes函数。例如,subplot(2,1,2,polaraxes)。

提示

要清除图窗的内容,请使用clf。例如,您可以在创建新子图布局之前清除图窗中的现有子图布局。要叠加坐标区,请改用axes命令。subplot函数会删除与新坐标区重叠的现有坐标区。例如,subplot(Position,[.35.35.3.3])会删除所有底层坐标区,但axes(Position,[.35.35.3.3])会将新坐标区置于图窗的中部而不删除底层坐标区。subplot(111)是一个例外,其行为与subplot(1,1,1)不同。出于向后兼容的原因,subplot(11

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论