exponenta event banner

pcolor

Псевдоколоровый график

Описание

пример

pcolor(C) создает псевдоколоровый график с использованием значений в матрице C. Псевдоколоровый график отображает матричные данные в виде массива цветных ячеек (известных как грани). MATLAB ® создает этот график как плоскую поверхность в плоскости x-y. Поверхность определяется сеткой координат x и y, соответствующих углам (или вершинам) граней. Сетка охватывает регионX=1:n и Y=1:m, где [m,n] = size(C). Матрица C задает цвета в вершинах. Цвет каждой грани зависит от цвета одной из четырех окружающих ее вершин. Из четырёх вершин цвет грани определяет та, которая идет первой в сетке x-y.

пример

pcolor(X,Y,C) задает координаты x и y для вершин. Размер C должен соответствовать размеру координатной сетки x-y. Например, если X и Y определить сетку m-by-n, затем C должна быть матрицей m-by-n.

пример

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

пример

s = pcolor(___) возвращает Surface объект. Использовать s задание свойств на графике после его создания. Список свойств см. в разделе Свойства поверхности.

Примеры

свернуть все

Создание векторов координат X и Y и карта цветов под названием mymap содержит пять цветов: красный, зеленый, синий, желтый и черный.

X = [1 2 3; 1 2 3; 1 2 3];
Y = X';
mymap = [1 0 0; 0 1 0; 0 0 1; 1 1 0; 0 0 0];

Создать матрицу C сопоставляет цвета карты цветов с девятью вершинами. Четыре из девяти вершин определяют цвета граней. Задайте цвета в этих вершинах, чтобы сделать грани красными (1), зеленого (2), синий (3), и желтый (4), соответственно. Установите цвета в других вершинах черными (5).

C = [3 4 5; 1 2 5; 5 5 5];

Постройте график граней и вызовите colormap для замены карты цветов по умолчанию на mymap.

pcolor(X,Y,C)
colormap(mymap)

Figure contains an axes. The axes contains an object of type surface.

Матрица Адамара имеет элементы, которые являются 1 или -1. Хороший способ визуализации этой матрицы - двухцветная цветовая карта.

Создайте матрицу Адамара 20 на 20. Затем постройте график матрицы, используя черно-белую карту цветов. Используйте axis для изменения направления оси Y на противоположное и установки линий оси на равные длины.

C = hadamard(20);
pcolor(C)
colormap(gray(2))
axis ij
axis square

Figure contains an axes. The axes contains an object of type surface.

Создание цветовой матрицы C. Затем создайте псевдоколоровый график Cи сохраните Surface объект в аргументе return s.

C = [1 2 3; 4 5 6; 7 8 9];
s = pcolor(C);

Figure contains an axes. The axes contains an object of type surface.

Измените цвет границы, установив EdgeColor имущество s. Сделать границу толще, установив LineWidth собственность.

s.EdgeColor = [1 0.7 0.3];
s.LineWidth = 6;

Figure contains an axes. The axes contains an object of type surface.

Создание цветовой матрицы C. Затем создайте псевдоколоровый график Cи сохраните Surface объект в аргументе return s.

C = [5 13 9 7 12; 11 2 14 8 10; 6 1 3 4 15];
s = pcolor(C);

Figure contains an axes. The axes contains an object of type surface.

Для интерполяции цветов по граням установите FaceColor свойство s кому 'interp'.

s.FaceColor = 'interp';

Figure contains an axes. The axes contains an object of type surface.

Создание матриц X и Y, которые определяют регулярно разнесенную сетку вершин. Вычислить матрицу LY как журнал Y. Затем создайте матрицу C содержит чередующиеся пары строк цветовых индексов.

[X,Y] = meshgrid(1:20);
LY = log(Y);
colorscale = [1:20; 20:-1:1];
C = repmat(colorscale,10,1);

График X и LY, используя цвета, указанные в C. Затем отрегулируйте метки засечек на оси Y.

s = pcolor(X,LY,C);
tickvals = LY(2:2:20,1)';
set(gca,'YTick',tickvals);

Figure contains an axes. The axes contains an object of type surface.

Создание матриц X и Y, которые определяют регулярно разнесенную сетку вершин. Вычислить матрицы XX и YY как функции X и Y. Затем создайте матрицу C содержит чередующиеся пары строк цветовых индексов.

[X,Y] = meshgrid(-3:6/17:3);
XX = 2*X.*Y;
YY = X.^2 - Y.^2;
colorscale = [1:18; 18:-1:1];
C = repmat(colorscale,9,1);

График XX и YY с использованием цветов в C.

pcolor(XX,YY,C);

Figure contains an axes. The axes contains an object of type surface.

Начиная с R2019b, можно отобразить мозаику графиков с помощью tiledlayout и nexttile функции. Позвоните в tiledlayout для создания компоновки мозаичной диаграммы «1 на 2». Позвоните в nexttile для создания объектов осей ax1 и ax2. Создайте два псевдоколоровых графика, указав оси в качестве первого аргумента для pcolor.

tiledlayout(1,2)

% Left plot
ax1 = nexttile;
C1 = rand(20,10);
pcolor(ax1,C1)

% Right plot
ax2 = nexttile;
C2 = rand(50,10);
pcolor(ax2,C2)

Figure contains 2 axes. Axes 1 contains an object of type surface. Axes 2 contains an object of type surface.

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

свернуть все

Цветовая матрица, содержащая индексы в карте цветов. Значения в C сопоставить цвета в массиве карты цветов вершинам, окружающим каждую грань. Цвет грани зависит от цвета в одной из четырех вершин. Из четырех вершин, та, которая приходит первой в X и Y определяет цвет грани. Если не указать X и Y, MATLAB использует X=1:n и Y=1:m, где [m,n] = size(C). Из-за этой взаимосвязи между цветами вершин и цветами граней ни одно из значений в последней строке и столбце C представлены на графике.

Примечание

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

Значения в C масштабировать до полного диапазона карты цветов. Наименьшее значение в C сопоставляется с первой строкой в массиве карты цветов. Наибольшее значение в C сопоставляется с последней строкой в массиве карты цветов. Промежуточные значения в C отображается линейно к промежуточным строкам массива карты цветов. Можно настроить это сопоставление с помощью caxis функция.

CData имущества Surface объект сохраняет значения C.

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

x-координаты, заданная как матрица того же размера, что и C, или как вектор длины n, где [m,n] = size(C). Значение по умолчанию X - вектор (1:n).

Чтобы создать прямоугольную сетку вершин, укажите X как одно из следующих:

  • Вектор, содержащий возрастающие или уменьшающиеся значения.

  • Матрица, увеличивающаяся или уменьшающаяся вдоль одного размера и постоянная вдоль другого размера. Задание размера, который изменяется в противоположную сторону от размера, который изменяется в матрице Y. Вы можете использовать meshgrid для создания X и Y матрицы.

Чтобы создать параметрическую сетку, создайте прямоугольную сетку и передайте ее через математическую функцию.

Пример: X = 1:10

Пример: X = [1 2 3; 1 2 3; 1 2 3]

Пример: [X,Y] = meshgrid(1:10)

XData имущества Surface объект сохраняет координаты X.

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

y-координаты, заданная как матрица того же размера, что и C, или как вектор длины m, где [m,n] = size(C). Значение по умолчанию Y - вектор (1:m).

Чтобы создать прямоугольную сетку вершин, укажите Y как одно из следующих:

  • Вектор, содержащий возрастающие или уменьшающиеся значения.

  • Матрица, увеличивающаяся или уменьшающаяся вдоль одного размера и постоянная вдоль другого размера. Задание размера, который изменяется в противоположную сторону от размера, который изменяется в матрице X. Вы можете использовать meshgrid для создания X и Y матрицы.

Чтобы создать параметрическую сетку, создайте прямоугольную сетку и передайте ее через математическую функцию.

Пример: Y = 1:10

Пример: Y = [1 1 1; 2 2 2; 3 3 3]

Пример: [X,Y] = meshgrid(1:10)

YData имущества Surface объект сохраняет координаты Y.

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

Целевые оси, указанные как Axes объект. Если оси не указаны, то pcolor строит графики в текущих осях.

Алгоритмы

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

  • pcolor(C) использует значения в C определение цветов вершин путем масштабирования значений до полного диапазона карты цветов. Размер C определяет количество вершин. Значения в C отображение цветов из текущей карты цветов в вершины, окружающие каждую ячейку.

  • image(C) использование C для определения цветов ячеек путем сопоставления значений непосредственно с картой цветов. Размер C определяет количество ячеек.

  • imagesc(C) использование C определение цветов ячеек путем масштабирования значений до полного диапазона карты цветов. Размер C определяет количество ячеек.

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

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