控制图形显示
您可以控制什么
MATLAB® 允许一个会话中同时打开多个图窗窗口。您可以控制 MATLAB 使用哪些图窗和哪些坐标区来显示绘图函数的结果。您还可以控制 MATLAB 清除和重置目标图窗和坐标区的属性的程度。
您可以修改 MATLAB 绘图函数行为方式,您还可以在您编写的绘图函数中实现特定的行为。
考虑如下方面:
您可以防止特定的图窗或坐标区成为显示图形的目标吗?
当您向现有图形绘制更多数据时,图形会出现什么情况?现有图形被取代,还是新图形对象添加到现有图形中?
以特定图窗和坐标区为目标
默认情况下,MATLAB 绘图函数在当前图窗和当前坐标区(分别由 gcf
和 gca
返回的对象)中显示图形。您可以通过以下方式将输出指向其他图窗和坐标区:
在绘图函数中显式指定目标坐标区。
使目标坐标区成为当前坐标区。
指定目标坐标区
假设您创建一个包含两个坐标区(分别为 ax1
和 ax2
)的图窗。
tiledlayout(1,2) ax1 = nexttile; ax2 = nexttile;
调用 plot
,以坐标区对象作为第一个参量:
plot(ax1,1:10)
对于不支持将坐标区作为第一个参量的绘图函数,设置 Parent
属性:
t = 0:pi/5:2*pi; patch(sin(t),cos(t),'y','Parent',ax2)
使目标成为当前对象
要指定目标,可以让图窗成为当前图窗,让此图窗中的坐标区成为当前坐标区。绘图函数默认使用当前图窗和当前坐标区。如果当前图窗没有当前坐标区,那么 MATLAB 会创建一个。
如果 fig
是图窗句柄,则以下语句
figure(fig)
使
fig
成为当前图窗。重新叠放
fig
,使其成为最前面的图窗。如果
fig
不可见,则使其可见(将Visible
属性设置为'on'
)。更新图窗显示并处理所有挂起的回调。
同样的行为会应用到坐标区。如果 ax
是坐标区的句柄,则以下语句
axes(ax)
使
ax
成为当前坐标区。重新叠放
ax
,使其成为最前面的坐标区。如果
ax
不可见,则使其可见。更新包含此坐标区的图窗并处理所有挂起的回调。
使图窗或坐标区成为当前对象,而不改变其他状态
您可以使图窗或坐标区成为当前对象,而不改变对象状态其他方面。将根 CurrentFigure
属性或图窗对象的 CurrentAxes
设置为您要用作目标的图窗或坐标区的句柄。
如果 fig
是现有图窗的句柄,则以下语句
r = groot; r.CurrentFigure = fig;
使 fig
成为当前图窗。同样,如果 ax
是坐标区对象的句柄,则以下语句
fig.CurrentAxes = ax;
使其成为当前坐标区,如果 fig
是坐标区的父图窗的句柄。