2026a
M 语言

# hold


添加新绘图时保留当前绘图

# 语法

hold on
hold off
hold(ax,___)

# 说明

hold on 保留当前坐标区中的绘图,从而使新添加到坐标区中的绘图不会删除现有绘图。新绘图基于坐标区的 ColorOrder 和 LineStyleOrder 属性使用后续的颜色和线型。Syslab 将调整坐标区的范围、刻度线和刻度标签以显示完整范围的数据。如果不存在坐标区,hold 命令会创建坐标区。示例


hold off 将保留状态设置为 "off",从而使新添加到坐标区中的绘图清除现有绘图并重置所有的坐标区属性。添加到坐标区的下一个绘图基于坐标区的 ColorOrder 和 LineStyleOrder 属性使用第一个颜色和线型。此选项为默认行为。示例


hold(ax,___) 为 ax 指定的坐标区而非当前坐标区设置 hold 状态。请在前面任何语法中的所有其他参数之前指定 ax。使用单引号将 'on' 和 'off' 输入引起来,例如 hold(ax,'on')。示例

# 示例

在现有坐标区上添加线图

创建一个线图。使用 hold on 添加第二个线图,而不删除已有的线图。新绘图基于坐标区的 ColorOrder 和 LineStyleOrder 属性使用下一种颜色和线型。然后将保留状态重置为 off。

x = linspace(-pi,pi);
y1 = sin(x);
plot(x,y1)

hold on
y2 = cos(x);
plot(x,y2)
hold off

当保留状态为 off 时,新绘图将删除现有绘图。新绘图从色序和线型序列的开头开始。

y3 = sin(2*x);
plot(x,y3)
指定特定坐标区的保留状态

调用 subplot 函数以创建一个 2×1 分块图布局和一个坐标区对象,并将该对象返回为 ax1。通过将 ax1 传递给 plot 函数来创建顶部绘图。重复该过程以创建底部绘图。在每个坐标区中绘制一个正弦波图。

x = linspace(0,10);
y1 = sin(x);
y2 = cos(x);

% Top plot
ax1 = subplot(2, 1, 1)
plot(ax1,x,y1)

% Bottom plot
ax2 = subplot(2, 1, 2)
plot(ax2,x,y2)

向上方坐标区添加第二个正弦波。

hold(ax1,'on')
y3 = sin(2*x);
plot(ax1,x,y3)
hold(ax1,'off')
设置多个坐标区的保留状态

调用 subplot 函数以创建一个 2×1 分块图布局和一个坐标区对象,并将该对象返回为 ax1。通过将 ax1 传递给 plot 函数来创建左部绘图。重复该过程以创建右部绘图。在每个坐标区中绘制图形。

ax1 = subplot(1,2,1)
ax2 = subplot(1,2,2)

plot(ax1,[0,1,0,1])
scatter(ax2,rand(1,10),rand(1,10),'filled')

将两个坐标区的 hold 状态都设置为 'on'。然后在每个图中显示附加数据。

hold([ax1 ax2],'on')
plot(ax1,[.5 .2 .5 .2])
scatter(ax2,rand(1,10),rand(1,10),'filled')

# 输入参数

ax - 目标坐标区
坐标区 | 坐标区数组

目标坐标区,指定为下列值之一:

  • 任何类型的坐标区对象:Axes、PolarAxes 对象;
  • 属于同一类的坐标区对象组成的数组。

如果您不指定坐标区,hold("on") 将为当前坐标区设置 hold 状态。

提示

使用 ishold 函数测试保留状态。

# 另请参阅

axes | cla | figure | ishold