如何在App Designer中在另一个图的顶部绘制图?

时间:2019-06-10 15:07:36

标签: matlab matlab-app-designer

在应用设计器(MATLAB)中,我要显示两个图形。这就是我所做的:

plot(app.UIAxes,(1:length(app.var.OEch))/app.var.OE_Fs,app.var.OEch,'Color',[0,0.7,0.9])

st=app.var.st;
hold on
for ss = 1:length(st)
plot(app.UIAxes,[st(ss);st(ss)],[50;250], 'r');
end
hold off

如果要在for循环中删除app.UIAxes,它将可以工作并分别绘制两个图形,但是我希望它能够在UIAxes上对其进行图形化。目前,我只看到一个白色屏幕,如果要运行此屏幕,绘制的图形应该在该屏幕上。

1 个答案:

答案 0 :(得分:1)

hold on替换为hold(app.UIAxes, 'on');

hold(app.UIAxes, 'on');
for ss = 1:length(st)
    plot(app.UIAxes,[st(ss);st(ss)],[50;250], 'r');
end
hold(app.UIAxes, 'off');

%Add drawnow command (just in case...).
drawnow

您需要使用hold(app.UIAxes, 'on');的原因是hold on应用了“当前轴”,并且在GUI应用程序中,焦点可能会更改为其他轴(当您有多个轴时)。

使用hold on的示例:
enter image description here

使用hold(app.UIAxes, 'on')的示例:
enter image description here