Хотите сделать линию, используя дескриптор фигуры в MATLAB

У меня есть проблема, когда у меня уже есть дескриптор созданной фигуры, и я хочу как-то теперь нарисовать линию, учитывая этот дескриптор. Например, у меня есть:

f1 = figure(1);
a1 = gca;

Для таких команд, как plot и surf, я могу передать оси и/или манипуляторы фигур, чтобы указать построить график для этой конкретной фигуры. Однако как это сделать с помощью команды line? Насколько я знаю, похоже, нет способа... спасибо.


person Spacey    schedule 22.05.2013    source источник


Ответы (2)


Функция line, как и patch, является функцией низкого уровня. Команда сюжета построена поверх них. Однако вы можете сделать это:

f1 = figure(1);
a1 = gca;
line([0 1],[0 1],'Parent',a1); % Parent has to be an axis handle

Дополнительные параметры линии можно найти здесь: свойства линии или введите doc Line_Props в поле Командное окно Матлаба.

person horchler    schedule 22.05.2013
comment
чем ваш ответ отличается от моего? - person Shai; 22.05.2013
comment
Работает как шарм - спасибо! Это так раздражает, что у plot/surf/imagesc/line разные способы сделать это! ›‹ - person Spacey; 22.05.2013
comment
@Shai: Они ничем не отличаются. Мы просто написали и представили одновременно. Я даже не видел твоего. Однако в вашем ответе есть небольшая проблема - см. мой комментарий. - person horchler; 22.05.2013

Вы пробовали свойство `Parent'?

line( x, y, 'Parent', a1 ); 

см. свойства линии для получения дополнительной информации.

person Shai    schedule 22.05.2013
comment
Ручка фигуры не работает. Только дескриптор оси (или hggroup или hgtransform`) - person horchler; 22.05.2013