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)

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 propery 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 как любое из следующего:

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

  • Матрица A, которая увеличивается или уменьшается по одному измерению и является постоянной по другому измерению. Установите размерность, которая варьируется к противоположности размерности, которая варьируется по матричному 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 как любое из следующего:

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

  • Матрица A, которая увеличивается или уменьшается по одному измерению и является постоянной по другому измерению. Установите размерность, которая варьируется к противоположности размерности, которая варьируется по матричному 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