pcolor

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

Описание

пример

pcolor(C) создает псевдоколорный график с использованием значений в матрице C. Псевдоколорный график отображает матричные данные как массив цветных камер (известный как faces). 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 объект в возвращаемом аргументе 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 объект в возвращаемом аргументе 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 функция.

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

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

x -cordinates, заданная в виде матрицы того же размера, что и 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)

The XData свойство Surface объект сохраняет x -cordinates.

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

y -cordinates, заданная в виде матрицы того же размера, что и 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)

The YData свойство Surface объект сохраняет y -cordinates.

Типы данных: 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