Как изменить порядок строк в МатЛАБ?
дали участок три кривые .файл 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))