Как изменить порядок строк в МатЛАБ?

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

3 ответов


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

uistack(h,'top')

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

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

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


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

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