Помимо создания крутых картинок, функцию патча можно использовать для чего-то весьма полезного. Его можно использовать для добавления дополнительного измерения к вашим сюжетным линиям.

Предположим, у вас есть данные, в которых вы знаете, что вдоль оси 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 и цвет — с наном в конце.

Если вы визуальный ученик, я резюмировал весь этот пост здесь.