
Помимо создания крутых картинок, функцию патча можно использовать для чего-то весьма полезного. Его можно использовать для добавления дополнительного измерения к вашим сюжетным линиям.
Предположим, у вас есть данные, в которых вы знаете, что вдоль оси X происходят две вещи. Простой пример: день и ночь. Вы можете нанести на рисунок некрасивые линии или, что еще хуже, добавить стрелки вручную — все это сгруппирует график. Вот организованный и эффективный способ сделать это с помощью patch.
Начните с некоторых игрушечных данных. В нашем случае мы будем использовать 0 для указания ночи и 1 для указания дня.
x_values = [1:15]; time_of_day = [0,0,0,0,0,1,1,1,1,1,0,0,0,0,0]; activity_level = [ normrnd(0,1,[5,1]); normrnd(10,1,[5,1]);... normrnd(0,1,[5,1]) ];
Нам бы хотелось, чтобы наши точки данных были окрашены по-разному в зависимости от значения в time_of_day. Давайте попробуем с функцией исправление и посмотрим, что получится.
patch( x_values, activity_level, time_of_day );

О, нет. Выглядит круто, но не уверен, зачем это делать. На самом деле решение не включает установку свойства patch, но вместо этого вы должны либо установить последнее значение ваших y-данных в nan, либо добавить nan в конце ваших данных.
activity_level(end) = nan;
or
x_values(end+1) = nan; time_of_day(end+1) = nan; activity_level(end+1) = nan;
Повторите функцию patch с парой свойств, чтобы получить точки для точечной диаграммы:
patch( x_values, activity_level, time_of_day, 'Marker','o', 'MarkerFaceColor', 'flat' );
Вот и все! Просто так. Не так много нужно помнить, просто вам всегда нужно вводить значения x, значения y и цвет — с наном в конце.
Если вы визуальный ученик, я резюмировал весь этот пост здесь.
