Как построить график поверх другого графика в App Designer? - PullRequest
0 голосов
/ 10 июня 2019

В конструкторе приложений (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

Если бы я избавился от app.UIAx в цикле for, он бы работал и отображал оба графика отдельно, но я хочу, чтобы он мог отображать его на UIAxes. В настоящее время я просто вижу белый экран, где должен быть мой построенный график, если бы я запустил это.

1 Ответ

1 голос
/ 10 июня 2019

Заменить 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 применяет «текущие оси», и в приложении с графическим интерфейсом фокус может измениться на другие оси (если у вас более одной оси).

Пример использования hold on:
enter image description here

Пример использования hold(app.UIAxes, 'on'):
enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...