Matlab平面伪彩图绘制函数pcolor用法

3.8
(5)

今天,给各位带来平面彩图的一种,即伪彩图Matlab中,可以使用pcolor函数来绘制这种伪彩图,伪彩图以彩色单元(称为面)阵列形式显示矩阵数据。本文,主要讲解伪彩图函数pcolor的常见用法、语法说明、用四种颜色绘制四个面、对 Hadamard 矩阵绘图、修改边框、跨面进行颜色插值、指定半对数网格、指定参数化网格以及指定目标坐标区等用法。

Matlab平面伪彩图绘制函数pcolor用法

下面,我们首先给出Matlab中关于pcolor函数的帮助文档如下:

>> help pcolor
 pcolor Pseudocolor (checkerboard) plot.
    pcolor(C) is a pseudocolor or "checkerboard" plot of matrix C.
    The values of the elements of C specify the color in each
    cell of the plot. In the default shading mode, 'faceted',
    each cell has a constant color and the last row and column of
    C are not used. With shading('interp'), each cell has color
    resulting from bilinear interpolation of the color at its 
    four vertices and all elements of C are used. 
    The smallest and largest elements of C are assigned the first and
    last colors given in the color table; colors for the remainder of the 
    elements in C are determined by table-lookup within the remainder of 
    the color table.
 
    pcolor(X,Y,C), where X and Y are vectors or matrices, makes a
    pseudocolor plot on the grid defined by X and Y.  X and Y could 
    define the grid for a "disk", for example.
 
    pcolor(AX,..) plots into AX instead of GCA.
 
    H = pcolor(...) returns a handle to a SURFACE object.
 
    pcolor is really a SURF with its view set to directly above.

常见用法

pcolor(C)
pcolor(X,Y,C)
pcolor(ax,___)
s = 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×n 网格,则 C 必须为 m×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)
Matlab平面伪彩图绘制函数pcolor用法

对 Hadamard 矩阵绘图

Hadamard 矩阵的元素是 1 或 -1。我们可以使用双色颜色图来可视化此矩阵。

创建一个 20×20 Hadamard 矩阵。然后用黑白颜色图绘制该矩阵。使用 axis 函数反转 y 轴的方向,并将轴线设置为相等的长度。

C = hadamard(20);
pcolor(C)
colormap(gray(2))
axis ij
axis square
Matlab平面伪彩图绘制函数pcolor用法

修改边框

创建颜色矩阵 C。然后创建 C 的伪彩图,并将 Surface 对象存储在返回参数 s 中。

C = [1 2 3; 4 5 6; 7 8 9];
s = pcolor(C);
Matlab平面伪彩图绘制函数pcolor用法

通过设置 s 的 EdgeColor 属性来更改边框颜色。通过设置 LineWidth 属性使边框更粗。

s.EdgeColor = [1 0.7 0.3];
s.LineWidth = 6;
Matlab平面伪彩图绘制函数pcolor用法

跨面进行颜色插值

创建颜色矩阵 C。然后创建 C 的伪彩图,并将 Surface 对象存储在返回参数 s 中。

C = [5 13 9 7 12; 11 2 14 8 10; 6 1 3 4 15];
s = pcolor(C);
Matlab平面伪彩图绘制函数pcolor用法

要跨面进行颜色插值,请将 s 的 FaceColor 属性设置为 ‘interp’。

s.FaceColor = 'interp';
Matlab平面伪彩图绘制函数pcolor用法

指定半对数网格

创建矩阵 X 和 Y,它们定义顶点的固定间隔网格。通过计算 Y 的对数得到矩阵 LY 。然后创建矩阵 C,其中包含交替的颜色索引行组。

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

使用 C 中指定的颜色绘制 X 和 LY。然后调整 y 轴上的刻度标签。

s = pcolor(X,LY,C);
tickvals = LY(2:2:20,1)';
set(gca,'YTick',tickvals);
Matlab平面伪彩图绘制函数pcolor用法

指定参数化网格

创建矩阵 X 和 Y,它们定义顶点的固定间隔网格。通过计算 X 和 Y 的函数得到矩阵 XX 和 YY 。然后创建矩阵 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);

使用 C 中的颜色绘制 XX 和 YY。

pcolor(XX,YY,C);
Matlab平面伪彩图绘制函数pcolor用法

指定目标坐标区

从 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)

由于我用的是Matlab2016,不支持tiledlayout和nexttile函数,因此我用subplot来代替这种分区间绘制方式,修改后的代码如下:

clc
clear all

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

% Right plot
subplot(1,2,2)
C2 = rand(50,10);
pcolor(C2)
Matlab平面伪彩图绘制函数pcolor用法

共计5人评分,平均3.8

到目前为止还没有投票~

很抱歉,这篇文章对您没有用!

让我们改善这篇文章!

告诉我们我们如何改善这篇文章?

文章目录

转载文章,原文出处:MathWorks官网,由古哥整理发布

如若转载,请注明出处:https://iymark.com/articles/1676.html

(7)
微信公众号
古哥的头像古哥管理团队
上一篇 2021年02月07日 19:21
下一篇 2021年02月09日 23:14

你可能感兴趣的文章

发表回复

登录后才能评论
微信小程序
微信公众号