Я предполагаю, что здесь немного, но звучит так, будто вы хотите создать графический интерфейс с осями, отображающими различные сюжеты, легенды и т. Д. В зависимости от того, какой элемент раскрывающегося меню выбран.Если это правильно, я предполагаю, что проблема, с которой вы столкнулись, заключается в том, что построение нового набора данных по осям приводит к замене старых данных, и вам приходится заново генерировать весь график каждый раз, когда вы выбираете новое меню.item.
Один из способов решения этой проблемы - использовать UIPANELs и 'Visible'
свойство графических объектов.Вы можете создать одну панель для каждого элемента меню, добавить оси для каждой из них вместе с любыми данными, которые вы хотите отобразить, а затем просто переключать видимость панелей с помощью команды SET вместо того, чтобы заново планировать все, когда появляется новый элемент меню.выбран.Вот пример:
hFigure = figure; %# Create a figure
hPanelA = uipanel('Parent',hFigure); %# Add panel A to the figure
hAxesA = axes('Parent',hPanelA); %# Add an axes to panel A
plot(hAxesA,1:10,rand(1,10),'r'); %# Plot a red line
text(5,0.5,'hello','Parent',hAxesA); %# Plot some text
legend(hAxesA,'red line'); %# Add a legend
hPanelB = uipanel('Parent',hFigure); %# Add panel B to the figure
hAxesB = axes('Parent',hPanelB); %# Add an axes to panel B
plot(hAxesB,1:10,rand(1,10),'b'); %# Plot a blue line
text(5,0.5,'world','Parent',hAxesB); %# Plot some text
legend(hAxesB,'blue line'); %# Add a legend
Теперь вы можете сделать панель A видимой и панель B невидимой, выполнив следующие действия:
set([hPanelA hPanelB],{'Visible'},{'on'; 'off'});
И вы можете сделать обратное (скрыть панель A ипокажите панель B), выполнив это:
set([hPanelA hPanelB],{'Visible'},{'off'; 'on'});
Вы должны заметить, что переключение между двумя панелями с двумя отдельными осями происходит быстро и плавно, что, скорее всего, было бы не так, если бы вам пришлось стирать иРеплотируйте данные в одном наборе осей каждый раз, когда вы хотите посмотреть на новый график.Создание всех графических объектов, которые вам нужны, при создании графического интерфейса, а затем изменение видимости (или других свойств) при необходимости с помощью команды SET обеспечивает более эффективный графический интерфейс.
Также обратите внимание, чтовы все еще можете изменять свойства объекта, даже когда они невидимы, поэтому (продолжая из моего примера выше) я мог бы сделать что-то вроде этого:
set([hPanelA hPanelB],{'Visible'},{'on'; 'off'}); %# Hide panel B
set(hPanelB,'BackgroundColor','b'); %# Change the color of panel B
set([hPanelA hPanelB],{'Visible'},{'off'; 'on'}); %# Show panel B
И теперь вы должны увидеть, что цвет фона панели B синий,Если вы также сохранили дескрипторы в нанесенных строках и тексте, вы можете обновить их новыми значениями, прежде чем снова сделать их видимыми.