patch

Постройте одну или несколько заполненных многоугольных областей

Описание

пример

patch(X,Y,C) графики одна или несколько заполненных многоугольных областей с помощью элементов X и Y как координаты для каждой вершины. patch соединяет вершины в порядке, что вы задаете их. Чтобы создать один многоугольник, задайте X и Y как векторы. Чтобы создать несколько многоугольников, задайте X и Y как матрицы, где каждый столбец соответствует многоугольнику. C определяет цвета многоугольника.

patch(X,Y,Z,C) создает многоугольники в 3-D координатах с помощью XY, и Z. Чтобы просмотреть многоугольники в 3-D представлении, используйте view(3) команда. C определяет цвета многоугольника.

patch('XData',X,'YData',Y) похоже на patch(X,Y,C), за исключением того, что вы не должны задавать цветные данные для 2D координат.

patch('XData',X,'YData',Y,'ZData',Z) похоже на patch(X,Y,Z,C), за исключением того, что вы не должны задавать цветные данные для 3-D координат.

пример

patch('Faces',F,'Vertices',V) создает один или несколько многоугольников где V задает значения вершины и F задает который вершины соединиться. Определение только уникальных вершин и их матрицы связи может уменьшать размер данных, когда существует много многоугольников. Задайте одну вершину на строку в V. Чтобы создать один многоугольник, задайте F как вектор. Чтобы создать несколько многоугольников, задайте F как матрица с одной строкой на многоугольник. Каждая поверхность не должна иметь того же количества вершин. Чтобы задать различные количества вершин, заполните F с NaN значения.

пример

patch(S) создает один или несколько многоугольников с помощью структуры S. Поля структуры соответствуют именам свойства исправления и значениям полей, соответствующим значениям свойств. Например, S может содержать поля Faces и Vertices.

пример

patch(___,Name,Value) создает многоугольники и задает один или несколько аргументов пары "имя-значение" использования свойств исправления. Закрашенная фигура является объектом, который содержит данные для всех созданных многоугольников. Можно задать свойства исправления с любой из комбинаций входных аргументов в предыдущих синтаксисах. Например, 'LineWidth',2 устанавливает ширину контура для всех многоугольников к 2 точкам.

patch(ax,___) создает закрашенную фигуру в осях, заданных ax вместо в текущей системе координат (gca). Опция ax может предшествовать любой из комбинаций входных аргументов в предыдущих синтаксисах.

p = patch(___) возвращает объект закрашенной фигуры, который содержит данные для всех многоугольников. Используйте p запросить и изменить свойства объекта закрашенной фигуры после того, как это создается. Для списка свойств и описаний, смотрите Свойства исправления.

Примеры

свернуть все

Создайте один многоугольник путем определения (x, y) координаты каждой вершины. Затем добавьте еще два многоугольника в фигуру.

Создайте красный квадрат с вершинами в (0,0), (1,0), (1,1), и (0,1). Задайте x как x-координаты вершин и y как y-координаты. patch автоматически соединяет последнее (x, y) координата с первым (x, y) координата.

x = [0 1 1 0];
y = [0 0 1 1];
patch(x,y,'red')

Создайте два многоугольника путем определения x и y как матрицы 2D столбца. Каждый столбец задает координаты для одного из многоугольников. patch добавляют многоугольники к текущей системе координат, не очищая оси.

x2 = [2 5; 2 5; 8 8];
y2 = [4 0; 8 2; 4 0];
patch(x2,y2,'green')

Создайте один многоугольник путем определения координат каждой уникальной вершины и матрицы, которая задает, как соединить их. Затем добавьте еще два многоугольника в фигуру.

Создайте красный квадрат с углами в (0,0), (1,0), (1,1), и (0,1). Задайте v так, чтобы каждая строка задала (x, y) координаты для одной вершины. Затем задайте f как вершины, чтобы соединиться. Выберите цвет путем определения FaceColor свойство.

v = [0 0; 1 0; 1 1; 0 1];
f = [1 2 3 4];
patch('Faces',f,'Vertices',v,'FaceColor','red')

Создайте два многоугольника путем определения f как матрица 2D строки. Каждая строка задает поверхность для одной закрашенной фигуры.

v2 = [2 4; 2 8; 8 4; 5 0; 5 2; 8 0];
f2 = [1 2 3; 
    4 5 6];
patch('Faces',f2,'Vertices',v2,'FaceColor','green')

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

Создайте многоугольники с помощью матриц x и y. Задайте c как вектор-столбец с двумя элементами с тех пор там две поверхности многоугольника и добавляют шкалу палитры.

x = [2 5; 2 5; 8 8];
y = [4 0; 8 2; 4 0];
c = [0; 1];
figure
patch(x,y,c)
colorbar

В качестве альтернативы можно получить тот же результат при использовании f и v вместо этого. Когда вы создаете многоугольники, устанавливаете FaceVertexCData к вектор-столбцу с двумя элементами с тех пор существует две поверхности многоугольника. Установите FaceColor к 'flat'.

v = [2 4; 2 8; 8 4; 5 0; 5 2; 8 0];
f = [1 2 3; 4 5 6];
col = [0; 1];
figure
patch('Faces',f,'Vertices',v,'FaceVertexCData',col,'FaceColor','flat');
colorbar

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

Создайте многоугольники с помощью матриц x и y. Задайте c как матрица тот же размер как x и y определение одного цвета на вершину, и добавляет шкалу палитры.

x = [2 5; 2 5; 8 8];
y = [4 0; 8 2; 4 0];
c = [0 3; 6 4; 4 6];
figure
patch(x,y,c)
colorbar

В качестве альтернативы можно получить тот же результат с помощью f и v вместо этого. Когда вы создаете многоугольники, устанавливаете FaceVertexCData к вектор-столбцу с одним значением на вершину и набор FaceColor к 'interp'.

v = [2 4; 2 8; 8 4; 5 0; 5 2; 8 0];
f = [1 2 3; 4 5 6];
col = [0; 6; 4; 3; 4; 6];
figure
patch('Faces',f,'Vertices',v,'FaceVertexCData',col,'FaceColor','interp');
colorbar

Создайте многоугольник с зелеными ребрами и не отображайте поверхность. Затем создайте второй многоугольник с различным цветом для каждого ребра.

v = [0 0; 1 0; 1 1];
f = [1 2 3];
figure
patch('Faces',f,'Vertices',v,...
    'EdgeColor','green','FaceColor','none','LineWidth',2);

Используйте различный цвет в каждом ребре путем определения цвета для каждой вершины и установки EdgeColor к 'flat'.

v = [2 0; 3 0; 3 1];
f = [1 2 3];
c = [1 0 0; % red
    0 1 0; % green
    0 0 1]; % blue
patch('Faces',f,'Vertices',v,'FaceVertexCData',c,...
    'EdgeColor','flat','FaceColor','none','LineWidth',2);

Используйте структуру, чтобы создать два многоугольника. Во-первых, создайте структуру с полевыми именами то свойство исправления соответствия имена. Затем используйте структуру, чтобы создать многоугольники.

clear S
S.Vertices = [2 4; 2 8; 8 4; 5 0; 5 2; 8 0];
S.Faces = [1 2 3; 4 5 6];
S.FaceVertexCData = [0; 1];
S.FaceColor = 'flat';
S.EdgeColor = 'red';
S.LineWidth = 2;
figure
patch(S)

Создайте два полупрозрачных многоугольника путем установки FaceAlpha свойство к значению между 0 и 1.

v1 = [2 4; 2 8; 8 4];
f1 = [1 2 3];
figure
patch('Faces',f1,'Vertices',v1,'FaceColor','red','FaceAlpha',.3);

v2 = [2 4; 2 8; 8 8];
f2 = [1 2 3];
patch('Faces',f2,'Vertices',v2,'FaceColor','blue','FaceAlpha',.5);

Создайте разноцветную линию с маркерами в каждой вершине. Интерполируйте цвета и используйте шкалу палитры, чтобы показать, как значения сопоставляют с палитрой.

Создайте данные. Установите последнюю запись y к NaN так, чтобы patch создает линию вместо закрытого многоугольника. Задайте цвет для каждой вершины с помощью y значения. Значения в c сопоставьте с, раскрашивает палитру.

x = linspace(1,10,15);
y = sin(x);
y(end) = NaN;
c = y;

Создайте линию. Покажите маркеры в каждой вершине и установите EdgeColor к 'interp' интерполировать цвета между вершинами. Добавьте шкалу палитры.

figure
patch(x,y,c,'EdgeColor','interp','Marker','o','MarkerFaceColor','flat');
colorbar;

Входные параметры

свернуть все

x- для вершин, заданных в одной из следующих форм:

  • Вектор — Создает один многоугольник.

  • Матрица — создает n многоугольники с m вершины каждый, где [m,n] = size(X). Каждый столбец в матрице соответствует одному многоугольнику.

Если данные не задают закрытые многоугольники, то patch закрывает многоугольники. Если ребра отдельного многоугольника пересекают себя, получившиеся многоугольники могут быть частично заполнены. В этом случае лучше разделить объект закрашенной фигуры на меньшие многоугольники.

Когда вы задаете X, patch функционируйте устанавливает XData свойство для закрашенной фигуры возражает против того же значения. Объект закрашенной фигуры автоматически вычисляет поверхность и данные о вершине и устанавливает Faces и Vertices свойства к соответствующим значениям.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

y- для вершин, заданных в одной из следующих форм:

  • Вектор — Создает один многоугольник.

  • Матрица — создает n многоугольники с m вершины каждый, где [m,n] = size(Y). Каждый столбец в матрице соответствует одному многоугольнику.

Если данные не задают закрытые многоугольники, то patch закрывает многоугольники. Если ребра отдельного многоугольника пересекают себя, получившиеся многоугольники могут быть частично заполнены. В этом случае лучше разделить объект закрашенной фигуры на меньшие многоугольники.

Когда вы задаете Y, patch функционируйте устанавливает YData свойство для закрашенной фигуры возражает против того же значения. Объект закрашенной фигуры автоматически вычисляет поверхность и данные о вершине и устанавливает Faces и Vertices свойства к соответствующим значениям.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

z- для вершин, заданных в одной из следующих форм:

  • Вектор — Создает один многоугольник.

  • Матрица — создает m многоугольники с n вершины каждый, где [m,n] = size(Z). Каждый столбец в матрице соответствует одному многоугольнику.

Когда вы задаете Z, patch функционируйте устанавливает ZData свойство для закрашенной фигуры возражает против того же значения. Объект закрашенной фигуры автоматически вычисляет поверхность и данные о вершине и устанавливает Faces и Vertices свойства к соответствующим значениям.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Многоугольник окрашивает в виде скаляра, вектора, матрицы или названия цвета. Формат входа определяет, имеют ли все многоугольники тот же цвет, один цвет на поверхность или интерполированные цвета поверхности.

Желаемый эффектИспользуйте один из этих форматовРезультаты
Один цвет для всех поверхностей

  • Название цвета, например, 'r' для красного.

  • Триплет RGB, например, [0 .5 .5].

  • Скалярное значение, например, 2. CDataMapping свойство определяет как карты ценности в палитру.

Для примера смотрите Координаты Определения.

  • Устанавливает FaceColor свойство к заданному цвету.

Один цвет на поверхность

  • n- 1 вектор цветов палитры, где n количество поверхностей. CDataMapping свойство определяет, как значения сопоставляют в палитру.

  • n- 1- 3 массив значений RGB. Первая страница массива задает красные компоненты цветов, вторая страница задает синий, и третья страница задает зеленый.

Для примера смотрите Различные Цвета Поверхности Многоугольника.

  • Устанавливает FaceColor свойство к 'flat'.

  • Устанавливает CData и FaceVertexCData свойства с помощью заданных значений цвета.

Интерполированные цвета поверхности

  • m- n матрица значений палитры, где [m,n] = size(X). Задайте один цвет на вершину.

  • m- n- 3 массив значений RGB.

Для примера смотрите Интерполированные Цвета Поверхности Многоугольника.

  • Устанавливает FaceColor свойство к 'interp'.

  • Устанавливает CData и FaceVertexCData свойства с помощью заданных значений цвета.

Триплет RGB представляет собой трехэлементный вектор-строку, элементы которого определяют интенсивность красных, зеленых и синих компонентов цвета. Интенсивность должна быть в области значений [0,1]; например, [0.4 0.6 0.7]Кроме того, вы можете задать имена некоторых простых цветов. В этой таблице перечислены варианты длинного и краткого наименований цветов и их эквивалентные значения RGB.

ОпцияОписаниеЭквивалентный триплет RGB
'red' или 'r'Красный[1 0 0]
'green' или 'g'Зеленый[0 1 0]
'blue' или 'b'Синий[0 0 1]
'yellow' или 'y'Желтый[1 1 0]
'magenta' или 'm'Пурпурный[1 0 1]
'cyan' или 'c'Голубой[0 1 1]
'white' или 'w'Белый[1 1 1]
'black' или 'k'Черный[0 0 0]

Вершины многоугольника, заданные в одной из следующих форм:

  • Матрица 2D столбца — Каждая строка содержит (x, y) координаты для вершины.

  • Матрица с тремя столбцами — Каждая строка содержит (x, y, Z) координаты для вершины.

Задайте только уникальные вершины. Можно обратиться к вершине несколько раз при определении определений поверхности в F.

Когда вы задаете V, patch функционируйте устанавливает Vertices свойство для закрашенной фигуры возражает против того же значения. Объект закрашенной фигуры автоматически вычисляет координатные данные и устанавливает XData, YData, и ZData к соответствующим значениям.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Столкнитесь с определениями, заданными в одной из следующих форм:

  • Вектор-строка — Создает один многоугольник.

  • Матрица — Создает несколько многоугольников, где каждая строка соответствует многоугольнику.

Например, этот код задает три вершины в V и создает один многоугольник путем соединения вершины 1 - 2, 2 - 3, и от 3 до 1.

V = [1 1; 2 1; 2 2];
F = [1 2 3 1];
patch('Faces',F,'Vertices',V)

Когда вы задаете F, patch функционируйте устанавливает Faces свойство для закрашенной фигуры возражает против того же значения. Объект закрашенной фигуры автоматически вычисляет координатные данные и устанавливает XData, YData, и ZData к соответствующим значениям.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

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

Объект осей. Если вы не задаете объект осей, то patch использует текущую систему координат.

Аргументы в виде пар имя-значение

Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: patch(x,y,c,'FaceAlpha',.5,'LineStyle',':') создает полупрозрачные многоугольники с пунктирными краями.

Свойства, перечисленные здесь, являются только подмножеством свойств исправления. Для полного списка смотрите Свойства исправления.

Цвет поверхности в виде 'interp', 'flat' триплет RGB, шестнадцатеричный цветовой код, название цвета или краткое название.

Чтобы создать различный цвет для каждой поверхности, задайте CData или FaceVertexCData свойство как массив, содержащий один цвет на поверхность или один цвет на вершину. Цвета могут быть интерполированы от цветов окружающих вершин каждой поверхности, или они могут быть универсальными. Для интерполированных цветов задайте это свойство как 'interp'. Для единых цветов задайте это свойство как 'flat'. Если вы задаете 'flat' и различный цвет для каждой вершины, цвет первой вершины, которую вы задаете, определяют цвет поверхности.

Чтобы определять один цвет для всех поверхностей, задайте это свойство как триплет RGB, шестнадцатеричный цветовой код, название цвета или краткое название.

  • Триплет RGB представляет собой трехэлементный вектор-строку, элементы которого определяют интенсивность красных, зеленых и синих компонентов цвета. Интенсивность должна быть в области значений [0,1]; например, [0.4 0.6 0.7].

  • Шестнадцатеричный цветовой код является вектором символов или строковым скаляром, который запускается с символа хеша (#) сопровождаемый тремя или шестью шестнадцатеричными цифрами, которые могут лежать в диапазоне от 0 к F. Значения не являются чувствительными к регистру. Таким образом, цветовые коды '#FF8800', '#ff8800', '#F80', и '#f80' эквивалентны.

Название цветаКраткое названиеТриплет RGBШестнадцатеричный цветовой кодВнешний вид
'red''r'[1 0 0]'#FF0000'

'green''g'[0 1 0]'#00FF00'

'blue''b'[0 0 1]'#0000FF'

'cyan' 'c'[0 1 1]'#00FFFF'

'magenta''m'[1 0 1]'#FF00FF'

'yellow''y'[1 1 0]'#FFFF00'

'black''k'[0 0 0]'#000000'

'white''w'[1 1 1]'#FFFFFF'

'none'Не применяетсяНе применяетсяНе применяетсяНет цвета

Вот являются триплеты RGB и шестнадцатеричные цветовые коды для цветов по умолчанию использованием MATLAB® во многих типах графиков.

Триплет RGBШестнадцатеричный цветовой кодВнешний вид
[0 0.4470 0.7410]'#0072BD'

[0.8500 0.3250 0.0980]'#D95319'

[0.9290 0.6940 0.1250]'#EDB120'

[0.4940 0.1840 0.5560]'#7E2F8E'

[0.4660 0.6740 0.1880]'#77AC30'

[0.3010 0.7450 0.9330]'#4DBEEE'

[0.6350 0.0780 0.1840]'#A2142F'

Столкнитесь с прозрачностью в виде одного из этих значений:

  • Скаляр в области значений [0,1] — Используйте универсальную прозрачность через все поверхности. Значение 1 полностью непрозрачно и 0 абсолютно прозрачно. Эта опция не использует значения прозрачности в FaceVertexAlphaData свойство.

  • 'flat' — Используйте различную прозрачность в каждой поверхности на основе значений в FaceVertexAlphaData свойство. Сначала необходимо задать FaceVertexAlphaData свойство как вектор, содержащий одно значение прозрачности на поверхность или вершину. Значение прозрачности в первой вершине определяет прозрачность для целой поверхности.

  • 'interp' — Используйте интерполированную прозрачность в каждой поверхности на основе значений в FaceVertexAlphaData свойство. Сначала необходимо задать FaceVertexAlphaData свойство как вектор, содержащий одно значение прозрачности на вершину. Прозрачность варьируется через каждую поверхность путем интерполяции значений в вершинах.

Цвета обводки в виде одного из значений в этой таблице. Цвет обводки по умолчанию является черным со значением [0 0 0]. Если несколько многоугольников совместно используют ребро, то первый многоугольник чертившие средства управления отображенный цвет обводки.

ЗначениеОписаниеРезультат

Триплет RGB, шестнадцатеричный цветовой код или название цвета

Один цвет для всех ребер. Дополнительную информацию см. в следующей таблице.

'flat'

Различный цвет для каждого ребра. Используйте цвета вершины, чтобы выбрать цвет ребра, которое следует за ним. Необходимо сначала задать CData или FaceVertexCData как массив, содержащий один цвет на вершину. Цвет обводки зависит от порядка, в котором вы задаете вершины.

'interp'

Интерполированный цвет обводки. Необходимо сначала задать CData или FaceVertexCData как массив, содержащий один цвет на вершину. Определите цвет обводки путем линейной интерполяции значений в двух вершинах ограничения.

'none'Никакие ребра не отображены.

Никакие ребра не отображены.

Триплеты RGB и шестнадцатеричные цветовые коды полезны для определения пользовательских цветов.

  • Триплет RGB представляет собой трехэлементный вектор-строку, элементы которого определяют интенсивность красных, зеленых и синих компонентов цвета. Интенсивность должна быть в области значений [0,1]; например, [0.4 0.6 0.7].

  • Шестнадцатеричный цветовой код является вектором символов или строковым скаляром, который запускается с символа хеша (#) сопровождаемый тремя или шестью шестнадцатеричными цифрами, которые могут лежать в диапазоне от 0 к F. Значения не являются чувствительными к регистру. Таким образом, цветовые коды '#FF8800', '#ff8800', '#F80', и '#f80' эквивалентны.

Кроме того, вы можете задать имена некоторых простых цветов. Эта таблица приводит опции именованного цвета, эквивалентные триплеты RGB и шестнадцатеричные цветовые коды.

Название цветаКраткое названиеТриплет RGBШестнадцатеричный цветовой кодВнешний вид
'red''r'[1 0 0]'#FF0000'

'green''g'[0 1 0]'#00FF00'

'blue''b'[0 0 1]'#0000FF'

'cyan' 'c'[0 1 1]'#00FFFF'

'magenta''m'[1 0 1]'#FF00FF'

'yellow''y'[1 1 0]'#FFFF00'

'black''k'[0 0 0]'#000000'

'white''w'[1 1 1]'#FFFFFF'

Вот являются триплеты RGB и шестнадцатеричные цветовые коды для цветов по умолчанию использованием MATLAB во многих типах графиков.

Триплет RGBШестнадцатеричный цветовой кодВнешний вид
[0 0.4470 0.7410]'#0072BD'

[0.8500 0.3250 0.0980]'#D95319'

[0.9290 0.6940 0.1250]'#EDB120'

[0.4940 0.1840 0.5560]'#7E2F8E'

[0.4660 0.6740 0.1880]'#77AC30'

[0.3010 0.7450 0.9330]'#4DBEEE'

[0.6350 0.0780 0.1840]'#A2142F'

Стиль линии в виде одной из опций перечислен в этой таблице.

Стиль линииОписаниеПолучившаяся линия
'-'Сплошная линия

'--'Пунктирная линия

':'Пунктирная линия

'-.'Штрих-пунктирная линия

'none'Никакая линияНикакая линия

Выходные аргументы

свернуть все

Объект закрашенной фигуры, возвращенный как скаляр. Каждый объект закрашенной фигуры может состоять из одного или нескольких многоугольников. Используйте p запросить или изменить свойства объекта закрашенной фигуры после того, как это создается.

Расширенные возможности

Представлено до R2006a