15.2.4一页上有多张图

Octave可以在一个图形中显示多个绘图。最简单的方法是使用subplot函数将绘图区域划分为一系列从整数索引的子绘图窗口。例如

subplot (2, 1, 1)
fplot (@sin, [-10, 10]);
subplot (2, 1, 2)
fplot (@cos, [-10, 10]);

创建一个具有两个独立轴的图形,一个显示正弦波,另一个显示余弦波。对子绘图的第一次调用将图形划分为两个绘图区域(两行一列),并使第一个绘图区域处于活动状态。从创建的绘图区域网格subplot按行主要顺序(从左到右,从上到下)进行编号。绘制正弦波后,下一次调用子绘图会激活第二个子绘图区域,但不会重新划分图形。

 
: subplot (rows, cols, index)
: subplot (rows, cols, index, hax)
: subplot (rcn)
: subplot (hax)
: subplot (…, "align")
: subplot (…, "replace")
: subplot ("position", pos)
: subplot (…, prop, val, …)
: hax = subplot (…)

使用设置打印网格rowsxcols子窗口并设置当前打印轴(gca)到给定的位置index.

如果轴控制柄hax在之后提供(rows, cols,index)参数,相应的轴被转换为asubplot。

如果只提供了一个数字参数,那么它必须是一个三位数的值,指定数字1中的行数、数字2中的列数和数字3中的绘图索引。

绘图索引按行运行;首先,对一行中的所有列进行编号,然后填充下一行。

例如,具有2x3网格的绘图将具有如下运行的绘图索引:

+-----+-----+-----+
|  1  |  2  |  3  |
+-----+-----+-----+
|  4  |  5  |  6  |
+-----+-----+-----+

index也可以是向量。在这种情况下,新轴将包含指定的栅格位置。第一个演示说明了这一点:

demo ("subplot", 1)

要激活的子地块的索引也可以从其axeshandle指定,hax,从前一个返回subplot命令

如果参数"align"则子窗口的打印框将对齐,但这可能不会为轴刻度或标签留出空间。

如果参数"replace"则子图轴将重新设置,而不仅仅是切换当前轴以绘制到所要求的子图。

这个"position"属性可用于在当前图形中精确定位子图形轴。该参数pos是一个4元素向量[x,y,width,height],用于确定轴的位置和大小。中的值pos在[0,1]范围内归一化。

任何属性/值对都将直接传递给基础轴对象。完整的属性清单记录在Axes Properties.

将删除将被新创建的轴(部分)覆盖的任何先前存在的轴。

如果输出hax被指定时,subplot返回subplot的轴句柄。这对于使用修改子图形的属性非常有用set.

在某些情况下,subplot可能无法识别可以重复使用的axesthat,并可能替换它们。如果subplot应该重复引用axess,请考虑预先创建和存储它们的axeshandle,而不是调用subplot重复相同的位置。

用例

x = 1:10;
y = rand (16, 10);
for i_plot = 1:4
  hax(i_plot) = subplot (2, 2, i_plot);
  hold (hax(i_plot), "on");
  grid (hax(i_plot), "on");
endfor
for i_loop = 1:2
  for i_plot = 1:4
    iy = (i_loop - 1)*4 + i_plot;
    plotyy (hax(i_plot), x,y(iy,:), x,y(iy+1,:));
  endfor
 endfor

详见: axes, plot, gca, set.

广告

版权所有 © 2024-2025 Octave中文网

ICP备案/许可证号:黑ICP备2024030411号-2