Терминология MATLAB: зачем использовать Parent для Axis? - PullRequest
0 голосов
/ 25 апреля 2019

Это вопрос терминологии MATLAB, касающийся родительского приложения в Matlab.Часто я использую axes1 = axes(‘Parent’, figure1) в моем построении, потому что я запомнил шаги построения.Тем не менее, я даже не понимаю, почему я использую эту линию.

Я понимаю, что у нас есть родительские и дочерние объекты в графике Matlab.Однако я думал, что родительские объекты относятся только к рисунку, а все остальные графические объекты находятся ниже.Что означает Родитель, мы применили как: axes1 = axes(‘Parent’, figure1).

Ответы [ 2 ]

4 голосов
/ 25 апреля 2019

Parent - это свойство объекта axes или многих других графических объектов в MATLAB, в котором хранится дескриптор родительского объекта.

Синтаксис, который вы используете для создания axes объекта, является перегрузкой axes():

axes(Name,Value) изменяет внешний вид осей или управляет способом отображения данных с использованием одного или нескольких аргументов пары имя-значение. Например, «FontSize», 14 устанавливает размер шрифта для текста осей.

Ссылка: https://uk.mathworks.com/help/matlab/ref/axes.html?s_tid=doc_ta

Следовательно, axes1 = axes('Parent', figure1) создает объект axes и присваивает figure1 его свойству Parent. При этом axes помещается внутрь figure1.

Это необходимо, если у вас есть несколько окон figure и вы хотите добавить axes к конкретному figure, который не является верхним. Например:

figure1 = figure;
figure2 = figure;

% Now you have two figure windows and you only want to add an axes to figure1.
% Note that figure2 is the topmost figure since it is created at a later time.
axes1 = axes('Parent', figure1);

Если у вас есть только одно окно рисунка или окно рисунка нуждается в новых осях верхнего уровня, вы можете просто набрать axes. Например:

figure1 = figure;
figure2 = figure;

% add a new axes to figure2.
axes1 = axes;

Немного подробнее о синтаксисе

Такой синтаксис не редкость в MATLAB. Например:

figure('Color',[0 0 0], ....
              'Position', [0 0 100 100]);

scatter(x,y,'MarkerEdgeColor',[0 .5 .5],...
              'MarkerFaceColor',[0 .7 .7],...
              'LineWidth',1.5);

1 голос
/ 25 апреля 2019

Правильно, ваше понимание верно. Линия:

axes1 = axes(‘Parent’, figure1)

создает наборы осей под переменной axes1 и указывает, что родительский объект для этого набора осей является графическим объектом под переменной figure1, что, вероятно, является цифрой, как вы правильно догадались.

Явное указание того, какая фигура является родителем объекта осей, может быть полезно при создании и работе с несколькими фигурами / осями одновременно, чтобы вы знали, какая из которых какая.

...