pcolor

График псевдоцвета

Синтаксис

pcolor(C)
pcolor(X,Y,C)
pcolor(ax,___)
s = 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, чтобы установить свойства на графике после создания его. Для списка свойств смотрите Surface Properties.

Примеры

свернуть все

Создайте координатные векторы 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)

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

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

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

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

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

Измените цвет рамки путем установки свойства EdgeColor s. Сделайте границу более толстой путем установки свойства LineWidth.

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

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

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

Чтобы интерполировать цвета через поверхности, установите FaceColor propery s к 'interp'.

s.FaceColor = 'interp';

Создайте матрицы 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);

Создайте матрицы 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);

Используйте функцию subplot, чтобы создать две оси, ax1 и ax2. Создайте два графика псевдоцвета путем определения осей в качестве первого аргумента к pcolor.

% Left plot
ax1 = subplot(1,2,1);
C1 = rand(20,10);
pcolor(ax1,C1)

% Right plot
ax2 = subplot(1,2,2);
C2 = rand(50,10);
pcolor(ax2,C2)

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

свернуть все

Матрица цветов, содержащая индексы в палитру. Значения в карте 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, чтобы создать матрицы Y и X.

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

Пример: 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

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

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

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

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

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

Пример: 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

Целевые оси, заданные как объект Axes. Если вы не задаете оси, то pcolor строит в текущую систему координат.

Алгоритмы

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

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

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

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

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

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