15.2.7 Управление окнами графиков
По умолчанию Octave обновляет окно графика при выводе приглашения или при ожидании ввода. Функция drawnow используется для обновления окна графика.
- : drawnow () ¶
- : drawnow ("expose") ¶
- : drawnow (term, file, debug_file) ¶
-
Обновить окна фигур и их дочерние элементы.
Очередь событий сбрасывается, и выполняются все созданные обратные вызовы.
При использовании необязательного аргумента
"expose", обновляются только графические объекты, и другие события или обратные вызовы не обрабатываются.Третья форма вызова
drawnowпредназначена для отладки и не документирована.См. также: refresh.
Будут обновлены только измененные фигуры. Функция refresh также может быть использована для обновления текущей фигуры, даже если она не была изменена.
- : refresh () ¶
- : refresh (h) ¶
-
Обновить фигуру, заставив ее перерисоваться.
При вызове без аргумента перерисовывается текущая фигура. В противном случае перерисовывается фигура с графическим дескриптором h.
См. также: drawnow.
Как правило, функции построения графиков высокого уровня, такие как plot или mesh, вызывают newplot, чтобы определить, следует ли инициализировать состояние целевых осей (по умолчанию) или последующие графики должны быть нанесены поверх предыдущих. Для построения двух графиков поверх друг друга используйте функцию hold или вручную измените свойство осей nextplot. Например,
hold on; x = -10:0.1:10; plot (x, sin (x)); plot (x, cos (x)); hold off;
отображает синусоиду и косинусоиду на одной оси. Если состояние hold выключено, последовательные команды построения графиков подобного типа будут отображать только последний нарисованный график.
- : newplot () ¶
- : newplot (hfig) ¶
- : newplot (hax) ¶
- : hax = newplot (…) ¶
-
Подготовить графический движок для создания нового графика.
Эта функция вызывается в начале всех функций высокого уровня построения графиков. В пользовательских программах она обычно не требуется.
newplotзапрашивает поле"NextPlot"текущей фигуры и осей, чтобы определить, что делать.NextPlot фигуры Действие "new"Создать новую фигуру и сделать ее текущей. "add"(по умолчанию)Добавить новые графические объекты в текущую фигуру. "replacechildren"Удалить дочерние объекты, у которых HandleVisibility установлен в "on". Установить свойство NextPlot в"add". Обычно очищает фигуру, но оставляет скрытые объекты, такие как строка меню. Это эквивалентноclf."replace"Удалить все дочерние объекты фигуры и сбросить все свойства фигуры до их значений по умолчанию. Однако следующие четыре свойства не сбрасываются: Position, Units, PaperPosition, PaperUnits. Это эквивалентно clf reset.NextPlot осей Действие "add"Добавить новые графические объекты на текущую ось. Это эквивалентно hold on."replacechildren"Удалить дочерние объекты, у которых HandleVisibility установлен в "on", но оставить свойства осей без изменений. Обычно очищает график, но сохраняет такие специальные настройки, как логарифмическая шкала для осей. Это эквивалентноcla."replace"(по умолчанию)Удалить все дочерние объекты осей и сбросить все свойства осей до их значений по умолчанию. Однако следующие свойства не сбрасываются: Position, Units. Это эквивалентно cla reset.Если задан необязательный вход hfig или hax, то подготовка выполняется для указанной фигуры или осей, а не для текущей фигуры и осей.
Необязательное возвращаемое значение hax — графический дескриптор созданного объекта осей (не фигуры).
Внимание: Вызов
newplotможет изменить текущую фигуру и текущую ось.
- : hold ¶
- : hold on ¶
- : hold off ¶
- : hold (hax, …) ¶
-
Включить или выключить состояние hold графического движка, которое определяет, добавляются ли новые графические объекты к графику или заменяют существующие.
hold on-
Сохранить данные и настройки графика, чтобы последующие команды построения графиков отображались на одном графике. Цвет и стиль линии изменяются для каждого добавляемого нового графика.
hold all (deprecated)-
Эквивалентно
hold on. hold off-
Восстановить настройки графики по умолчанию, которые очищают график и сбрасывают свойства осей перед каждой новой командой построения графика (по умолчанию).
holdПереключить текущее состояние hold.
При добавлении дополнительного аргумента hax, состояние hold изменяется для этой оси, а не для текущей оси, возвращаемой
gca.Для запроса текущего состояния hold используйте функцию
ishold.
- : tf = ishold ¶
- : tf = ishold (hax) ¶
- : tf = ishold (hfig) ¶
-
Возвращает true, если следующий график будет добавлен к текущему графику, или false, если графический дисплей будет очищен перед отрисовкой следующего графика.
Если первым аргументом является дескриптор осей hax или фигуры hfig, то операция выполняется для этого графика, а не для текущего.
Для очистки текущей фигуры вызовите функцию clf. Для очистки текущей оси вызовите функцию cla. Для вывода текущей фигуры наверх стека окон вызовите функцию shg. Для удаления графического объекта вызовите delete для его индекса. Для закрытия окна фигуры вызовите функцию close.
- : clf ¶
- : clf reset ¶
- : clf (hfig) ¶
- : clf (hfig, "reset") ¶
- : h = clf (…) ¶
-
Очистить текущее окно фигуры.
clfработает, удаляя дочерние графические объекты с видимыми дескрипторами (HandleVisibility ="on").Если задан необязательный аргумент
"reset", удаляются все дочерние объекты, включая объекты с скрытыми дескрипторами, и все свойства фигуры сбрасываются до значений по умолчанию. Однако следующие свойства не сбрасываются: Position, Units, PaperPosition, PaperUnits.Если первый аргумент hfig — дескриптор фигуры, то операция выполняется для этой фигуры, а не для текущей фигуры, возвращаемой
gcf.Необязательное возвращаемое значение h — графический дескриптор окна фигуры, которое было очищено.
- : cla ¶
- : cla reset ¶
- : cla (hax) ¶
- : cla (hax, "reset") ¶
-
Очистить текущий или указанный (hax) объект осей.
claработает, удаляя графические объекты-потомки с видимыми дескрипторами (HandleVisibility="on"). Это обычно очищает оси от визуальных объектов, но оставляет на месте пределы осей, метки и подписи, вид камеры и т. д. Кроме того, автоматическое форматирование и раскраска линий сбрасывается путем изменения свойств осейColorOrderIndex,LinestyleOrderIndexдо 1.Если указан необязательный аргумент
"reset", удаляются все объекты-потомки, включая объекты с скрытыми дескрипторами, и все свойства осей сбрасываются до значений по умолчанию. Однако следующие свойства не сбрасываются:Position,Units.Если первый аргумент hax является дескриптором осей, то выполняется операция с этими осями, а не с текущими осями, возвращаемыми
gca.
- : shg ¶
-
Показать окно графика.
Эта функция делает текущую фигуру видимой и помещает её поверх всех других окон графиков.
Примечание для программистов:
shgэквивалентноfigure (gcf), предполагая, что текущая фигура существует.
- : delete file ¶
- : delete file1 file2 … ¶
- : delete (file) ¶
- : delete (file1, file2, …) ¶
- : delete (handle) ¶
-
Удалить указанный файл или графический дескриптор.
file может содержать шаблоны поиска, такие как ‘*’. Несколько файлов для удаления могут быть указаны в одном вызове функции.
handle может быть скаляром или вектором графических дескрипторов для удаления.
Примечание для программистов: Удаление графических объектов — это правильный способ удаления элементов из графика без очистки всей фигуры.
- : close ¶
- : close (h) ¶
- : close figname ¶
- : close all ¶
- : close all hidden ¶
- : close all force ¶
- : status = close (…) ¶
-
Закрыть окно(а) фигуры.
При вызове без аргументов, закрыть текущую фигуру. Это эквивалентно
close (gcf). Если вход h — это графический дескриптор, или вектор графических дескрипторов, то закрыть каждую фигуру в h. Фигуру для закрытия можно также указать по имени figname, которое сопоставляется со свойством"Name"всех фигур.Если задан аргумент
"all", то закрываются все фигуры с видимыми дескрипторами (HandleVisibility ="on").Если задан дополнительный аргумент
"hidden", то закрываются все фигуры, включая скрытые.Если задан дополнительный аргумент
"force", то фигуры закрываются даже когда"closerequestfcn"был изменён, чтобы предотвратить закрытие окна.Если запрашивается необязательный выходной параметр status, то Octave возвращает 1, если окна фигур были успешно закрыты.
Примечание по реализации:
closeработает, делая дескриптор h текущей фигурой, а затем вызывая функцию, указанную свойством"closerequestfcn"фигуры. По умолчанию используется функцияclosereq. Возможно, что вызванная функция задержит или прервёт удаление фигуры. Чтобы удалить фигуру без выполнения каких-либо функций обратного вызова, используйтеdelete. При написании функции обратного вызова для закрытия окна не используйтеclose, чтобы избежать рекурсии.
© 1996–2023 The Octave Project Developers
Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies.
Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one.Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions.
https://docs.octave.org/v8.1.0/Manipulation-of-Plot-Windows.html