Octave可以在一个图形中显示多个绘图。最简单的方法是使用subplot
函数将绘图区域划分为一系列从整数索引的子绘图窗口。例如
subplot (2, 1, 1) fplot (@sin, [-10, 10]); subplot (2, 1, 2) fplot (@cos, [-10, 10]);
创建一个具有两个独立轴的图形,一个显示正弦波,另一个显示余弦波。对子绘图的第一次调用将图形划分为两个绘图区域(两行一列),并使第一个绘图区域处于活动状态。从创建的绘图区域网格subplot
按行主要顺序(从左到右,从上到下)进行编号。绘制正弦波后,下一次调用子绘图会激活第二个子绘图区域,但不会重新划分图形。
(rows, cols, index)
¶(rows, cols, index, hax)
¶(rcn)
¶(hax)
¶(…, "align")
¶(…, "replace")
¶("position", pos)
¶(…, 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
版权所有 © 2024-2025 Octave中文网
ICP备案/许可证号:黑ICP备2024030411号-2