Като се има предвид диаграма от три криви в .fig файл, бих искал да добавя друга диаграма (с hold all
и plot
), но да я поставя зад една от вече съществуващите криви (т.е. уверете се, че последният оригинал кривата остава на преден план). Може ли това да се постигне, без да се налага извличане на данните от графиката и повторно чертане?
Как да промените реда на линиите в Matlab фигура?
Отговори (4)
Ако знаете манипулатора на реда, който искате отгоре (напр. защото сте извикали h = plot(...)
, можете да използвате uistack
uistack(h,'top')
Като алтернатива можете директно да манипулирате реда на децата на вашите текущи оси. Следното поставя най-последната крива отгоре.
chH = get(gca,'Children')
set(gca,'Children',[chH(end);chH(1:end-1)])
axesHandle.Children = circshift(axesHandle.Children, 1);
- person j-hap; 23.04.2020
Разделителната способност, дадена от @Jonas с помощта на свойството 'Children'
, не работи в зададения формат. Той трябва да бъде модифициран, както следва:
chH = get(gca,'Children')
set(gca,'Children',flipud(chH))
Когато изображението има легенда, двойката get(gca,...)
и set(gca,...)
води до грешка: „Грешка при използване на set. Децата могат да бъдат зададени само на пермутация на себе си“ В този случай използвах инструмента за избор на GUI на фигурата, за да изберете обектите на осите, след това вземете и задайте работа само с графиките, както се изисква, а не и с легендата. След като извикате set, трябва да опресните легендата, като извикате legend(...)
. Имах 5 парцела, които трябваше да пренаредя. Когато не сте сигурни за реда, сменете графиките два наведнъж, опреснете легендата и вижте дали това е редът, който искате
Свойството 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