Подтвердить что ты не робот

Как изменить порядок строк в фигуре Matlab?

Учитывая график трех кривых в файле .fig, я хотел бы добавить еще один сюжет (с hold all и plot), но поместил его за одну из уже существующих кривых (т.е. убедитесь, что последний оригинал кривая остается на переднем плане). Может ли это быть достигнуто без необходимости извлекать данные сюжета и перерисовывать?

4b9b3361

Ответ 1

Если вы знаете дескриптор строки, которую хотите uistack сверху (например, потому что вы назвали h = plot(...), вы можете использовать uistack

uistack(h,'top')

Кроме того, вы можете напрямую управлять порядком дочерних элементов ваших текущих осей. Следующее ставит последнюю кривую сверху.

chH = get(gca,'Children')
set(gca,'Children',[chH(end);chH(1:end-1)])

Ответ 2

Разрешение, заданное @Jonas с использованием свойства 'Children', не работает в данном формате. Его следует изменить следующим образом:

chH = get(gca,'Children')
set(gca,'Children',flipud(chH))

Ответ 3

Когда изображение имеет легенду, пары get(gca,...) и set(gca,...) приводят к ошибке: "Ошибка при использовании установлена ​​. Дети могут быть установлены только на перестановку себя" В этом случае я использовал инструмент выбора графического интерфейса фигуры, чтобы выбрать объекты осей, затем получить и установить работу только с графиками по мере необходимости, а не с легендой. После вызова набора вам нужно обновить легенду, вызвав legend(...). У меня было 5 сюжетов, которые мне нужно было переупорядочить. Когда вы не уверены в порядке, перестраивайте графики по два за раз, обновите легенду и посмотрите, нужен ли вам этот заказ.

Ответ 4

Свойство Children содержит ссылки, а порядок определяет графический стек.

Другой вариант, как получить список

gcaChildrenList=gca.Children;

Таким образом, вы можете играть с такими заказами, как

gca.Children=gca.Children([2:end 1]);         % Put the topmost graphic in the bottom
gca.Children=gca.Children([end:-1:1]);        % Flip the stack
gca.Children=gca.Children([1:N-1 N+1:end N]); % Put Nth graphics ontop the stack

Проверено на Matlab R2014b