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"текущей фигуры и осей, чтобы определить, что делать.Figure NextPlot Действие "new"Создать новую фигуру и сделать её текущей. "add"(по умолчанию)Добавить новые графические объекты в текущую фигуру. "replacechildren"Удалить дочерние объекты, у которых HandleVisibility установлено в "on". Установить свойство NextPlot в"add". Обычно очищает фигуру, но оставляет скрытые объекты, такие как строка меню. Это эквивалентноclf."replace"Удалить все дочерние объекты фигуры и сбросить все свойства фигуры до их значений по умолчанию. Однако следующие четыре свойства не сбрасываются: Position, Units, PaperPosition, PaperUnits. Это эквивалентно clf reset.Axes 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/v9.2.0/Manipulation-of-Plot-Windows.html