MATLAB中subplot函数的使用 |
您所在的位置:网站首页 › matlab函数中的变量 › 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) 将当前图窗划分为 m×n 网格,并在 p 指定的位置创建坐标区。MATLAB® 按行号对子图位置进行编号。第一个子图是第一行的第一列,第二个子图是第一行的第二列,依此类推。如果指定的位置已存在坐标区,则此命令会将该坐标区设为当前坐标区。 subplot(m,n,p,'replace') 删除位置 p 处的现有坐标区并创建新坐标区。 subplot(m,n,p,'align') 创建新坐标区,以便对齐图框。此选项为默认行为。 subplot(m,n,p,ax) 将现有坐标区 ax 转换为同一图窗中的子图。 subplot('Position',pos) 在 pos 指定的自定义位置创建坐标区。使用此选项可定位未与网格位置对齐的子图。指定 pos 作为 [left bottom width height] 形式的四元素向量。如果新坐标区与现有坐标区重叠,新坐标区将替换现有坐标区。 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('Subplot 1: sin(x)') subplot(2,2,2) y2 = sin(2*x); plot(x,y2) title('Subplot 2: sin(2x)') subplot(2,2,3) y3 = sin(4*x); plot(x,y3) title('Subplot 3: sin(4x)') subplot(2,2,4) y4 = sin(8*x); plot(x,y4) title('Subplot 4: sin(8x)')如图所示: 创建一个包含三个子图的图窗。在图窗的上半部分创建两个子图,并在图窗的下半部分创建第三个子图。在每个子图上添加标题。 subplot(2,2,1); x = linspace(-3.8,3.8); y_cos = cos(x); plot(x,y_cos); title('Subplot 1: Cosine') subplot(2,2,2); y_poly = 1 - x.^2./2 + x.^4./24; plot(x,y_poly,'g'); title('Subplot 2: Polynomial') subplot(2,2,[3,4]); plot(x,y_cos,'b',x,y_poly,'g'); title('Subplot 3 and 4: Both')如图所示: 创建一个包含四个随机数据针状图的图窗。然后将第二个子图替换为空坐标区。 for k = 1:4 data = rand(1,10); subplot(2,2,k) stem(data) end如图所示: 如图所示: 创建包含两个未与网格位置对齐的子图的图窗。为每个子图指定一个自定义位置。 pos1 = [0.1 0.3 0.3 0.3]; subplot('Position',pos1) y = magic(4); plot(y) title('First Subplot') pos2 = [0.5 0.15 0.4 0.7]; subplot('Position',pos2) bar(y) title('Second Subplot')如图所示: 创建包含两个极坐标区的图窗。在上部子图中创建极坐标线图,在下部子图中创建极坐标散点图。 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 中。然后使第二个子图成为当前坐标区。创建一个线图并更改第二个子图的坐标轴范围。默认情况下,图形函数作用于当前坐标区。 for k = 1:4 ax(k) = subplot(2,2,k); end subplot(ax(2)) x = linspace(1,50); y = sin(x); plot(x,y,'Color',[0.1, 0.5, 0.1]) title('Second Subplot') axis([0 50 -1 1])如图所示: 创建一个线图。然后转换坐标区,使其成为图窗的下部子图。subplot 函数使用原始坐标区所在的图窗。 x = linspace(1,10); y = sin(x); plot(x,y) title('Sine Plot')如图所示: 如图所示: 将位于不同图窗中的坐标区合并到包含子图的单个图窗中。 在两个不同的图窗中创建两个图。将 Axes 对象赋给变量 ax1 和 ax2。将 Legend 对象赋给变量 lgd。 figure x = linspace(0,10); y1 = sin(x); plot(x,y1) title('Line Plot 1')如图所示: 如图所示: 使用 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 – 新坐标区的自定义位置 新坐标区的自定义位置,指定为 [left bottom width height] 形式的四元素向量。 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(111) 是子图的一种特殊情况,它不立即创建坐标区,而是设置图窗,以便接下来的图形命令执行 clf reset。接下来的图形命令将删除所有图窗子级,并在默认位置创建新的坐标区。subplot(111) 不返回 Axes 对象,如果代码指定了返回参数,将会发生错误。 替代功能 使用 tiledlayout 和 nexttile 函数创建可配置的绘图平铺。配置选项包括: 对绘图之间和布局边缘周围间距的控制 布局顶部共享标题的选项 共享 x 轴和 y 轴标签的选项 用于控制分块是固定大小还是可以调整的可变大小的选项 来源:jk_101 您可能感兴趣的内容: python matplotlib.axes相关属性设置(绘图方式、坐标轴、坐标刻度、文本等) 基于ROS的PX4+Gazebo仿真——PX4一键起飞及飞行控制 【python绘图】Matplotlib绘图及设置(使用python制图) 【python教程】– 入门 | 小甲鱼《零基础入门学Python》教程笔记(知识点详细、源码可复制)全 详解坐标变换矩阵 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |