pcolor
伪彩图

说明
pcolor(
使用矩阵 C
)C
中的值创建一个伪彩图。伪彩图以彩色单元(称为面)阵列形式显示矩阵数据。MATLAB® 在 x-y 平面上创建该图的单一着色平面图。该平面由对应于各面的角(即顶点)的 x 坐标和 y 坐标的网格定义。网格覆盖区域 X=1:n
和 Y=1:m
,其中 [m,n] = size(C)
。矩阵 C
指定顶点处的颜色。每个面的颜色取决于其四个周围顶点之一的颜色。在这四个顶点中,x-y 网格中出现的第一个顶点决定该面的颜色。
s = pcolor(___)
返回 Surface
对象。创建绘图后,使用 s
设置绘图属性。有关属性列表,请参阅 Surface 属性。
示例
用四种颜色绘制四个面
创建坐标向量 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)
对 Hadamard 矩阵绘图
Hadamard 矩阵的元素是 1
或 -1
。我们可以使用双色颜色图来可视化此矩阵。
创建一个 20×20 Hadamard 矩阵。然后用黑白颜色图绘制该矩阵。使用 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);
通过设置 s
的 EdgeColor
属性来更改边框颜色。通过设置 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);
要跨面进行颜色插值,请将 s
的 FaceColor
属性设置为 'interp'
。
s.FaceColor = 'interp';
指定半对数网格
创建矩阵 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);
指定参数化网格
创建矩阵 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);
指定目标坐标区
从 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)
输入参数
C
— 颜色矩阵
矩阵
颜色矩阵,包含颜色图中的索引。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
函数调整此映射。
C
的值存储在 Surface
对象的 CData
属性中。
数据类型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
X
— x 坐标
矩阵 | 向量
x 坐标,指定为大小与 C
相同的矩阵或长度为 n
的向量,其中 [m,n] = size(C)
。X
的默认值是向量 (1:n)
。
要创建顶点的矩形网格,请将 X
指定为以下任一项:
要创建参数化网格,请创建一个矩形网格,并通过数学函数传递它。
示例: X = 1:10
示例: X = [1 2 3; 1 2 3; 1 2 3]
示例: [X,Y] = meshgrid(1:10)
Surface
对象的 XData
属性存储 x 坐标。
数据类型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| categorical
| datetime
| duration
Y
— y 坐标
矩阵 | 向量
y 坐标,指定为大小与 C
相同的矩阵或长度为 m
的向量,其中 [m,n] = size(C)
。Y
的默认值是向量 (1:m)
。
要创建顶点的矩形网格,请将 Y
指定为以下任一项:
要创建参数化网格,请创建一个矩形网格,并通过数学函数传递它。
示例: Y = 1:10
示例: Y = [1 1 1; 2 2 2; 3 3 3]
示例: [X,Y] = meshgrid(1:10)
Surface
对象的 YData
属性存储 y 坐标。
数据类型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| categorical
| datetime
| duration
ax
— 目标坐标区
Axes
对象
目标坐标区,指定为 Axes
对象。如果未指定坐标区,则 pcolor
在当前坐标区中绘图。
算法
使用 pcolor
、image
和 imagesc
函数显示彩色单元矩形阵列。颜色矩阵 C
和彩色单元之间的关系在每种情况下都不同。
pcolor(C)
使用C
定义顶点颜色,将值缩放到覆盖颜色图的整个范围。C
的大小确定顶点的数目。C
中的值将当前颜色图中的颜色映射到每个单元周围的顶点。image(C)
使用C
定义单元格颜色,将值直接映射到颜色图。C
的大小确定单元的数目。imagesc(C)
使用C
定义单元格颜色,将值缩放到覆盖颜色图的整个范围。C
的大小确定单元的数目。
扩展功能
GPU 数组
通过使用 Parallel Computing Toolbox™ 在图形处理单元 (GPU) 上运行来加快代码执行。
用法说明和限制:
此函数接受 GPU 数组,但不在 GPU 上运行。
有关详细信息,请参阅Run MATLAB Functions on a GPU (Parallel Computing Toolbox)。
分布式数组
使用 Parallel Computing Toolbox™ 在集群的组合内存中对大型数组进行分区。
用法说明和限制:
此函数在分布式数组上运行,但在客户端 MATLAB 中执行。
有关详细信息,请参阅Run MATLAB Functions with Distributed Arrays (Parallel Computing Toolbox)。
版本历史记录
在 R2006a 之前推出
MATLAB 命令
您点击的链接对应于以下 MATLAB 命令:
请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)