polarscatter
极坐标中的散点图

语法
说明
向量和矩阵数据
polarscatter(___, 设置标记符号。例如,mkr)'+' 显示十字标记。在上述语法中的任何输入参量组合之后指定标记符号。
polarscatter(___,'filled') 填充标记内部。
表数据
其他选项
polarscatter( 将在 pax,___)pax 指定的极坐标区(而不是当前坐标区)中绘制图形。
polarscatter(___, 使用一个或多个名称-值对组参量修改散点图的外观。例如,您可以指定 Name,Value)'FaceAlpha' 和一个介于 0 和 1 之间的标量值,从而使用半透明标记。
返回 ps = polarscatter(___)Scatter 对象或 Scatter 对象数组。在创建 Scatter 对象之后可使用 ps 修改其外观。有关属性列表,请参阅 Scatter 属性。
示例
在极坐标中创建一个散点图。
th = pi/4:pi/4:2*pi; r = [19 6 12 18 16 11 15 15]; polarscatter(th,r)

在 R2022a 之前,默认情况下极坐标区不包括度符号。要添加度符号,请使用 pax = gca 获取极坐标区。然后使用 pax.ThetaTickLabel = string(pax.ThetaTickLabel) + char(176) 修改刻度标签。
通过指定可选的输入参量 'filled',创建一个使用填充标记的散点图。将标记大小设置为 75 点方阵。
th = linspace(0,2*pi,20);
r = rand(1,20);
sz = 75;
polarscatter(th,r,sz,'filled')
使用具有不同大小和颜色的标记创建散点图。将可选的大小和颜色输入参量指定为向量。使用颜色向量中的唯一性值指定所需的不同颜色。这些值映射到颜色图中的不同颜色。
th = pi/4:pi/4:2*pi; r = [19 6 12 18 16 11 15 15]; sz = 100*[6 15 20 3 15 3 6 40]; c = [1 2 2 2 1 1 2 1]; polarscatter(th,r,sz,c,'filled','MarkerFaceAlpha',.5)

创建角度值以度为单位的数据。由于 polarscatter 要求角度值以弧度为单位,因此要在绘制之前使用 deg2rad 将值转换为弧度。
th = linspace(0,360,50); r = 0.005*th/10; th_radians = deg2rad(th); polarscatter(th_radians,r)

使用 hold 命令将位于相同极坐标区中的两个散点图合并起来。添加包含每个图的描述信息的图例。
th = pi/6:pi/6:2*pi; r1 = rand(12,1); polarscatter(th,r1,'filled') hold on r2 = rand(12,1); polarscatter(th,r2,'filled') hold off legend('Series A','Series B')

创建一个散点图,并将散点图对象赋给变量 ps。
th = pi/6:pi/6:2*pi;
r = rand(12,1);
ps = polarscatter(th,r,'filled')
ps =
Scatter with properties:
Marker: 'o'
MarkerEdgeColor: 'none'
MarkerFaceColor: 'flat'
LineWidth: 0.5000
ThetaData: [0.5236 1.0472 1.5708 2.0944 2.6180 3.1416 3.6652 4.1888 4.7124 5.2360 5.7596 6.2832]
RData: [0.8147 0.9058 0.1270 0.9134 0.6324 0.0975 0.2785 0.5469 0.9575 0.9649 0.1576 0.9706]
ZData: [1×0 double]
SizeData: 36
CData: [0.0660 0.4430 0.7450]
Show all properties
在创建散点图对象之后可使用 ps 修改其属性。
ps.Marker = 'square'; ps.SizeData = 200; ps.MarkerFaceColor = 'red'; ps.MarkerFaceAlpha = .5;

自 R2021b 开始提供
绘制表中数据的一种便捷方法是将表传递给 polarscatter 函数,并指定要绘制的变量。例如,创建一个包含三个变量的表,并绘制 'Th' 和 'R1' 变量。
% Create a table of random numbers Th = linspace(0,2*pi,50)'; R1 = randi([0 10],50,1); R2 = randi([20 30],50,1); tbl = table(Th,R1,R2); % Create polar scatter chart polarscatter(tbl,'Th','R1')

您也可以同时绘制多个变量。例如,通过将 rhovar 参量指定为元胞数组 {'R1','R2'} 来绘制两组半径值。然后,添加一个图例。图例标签与变量名称匹配。
polarscatter(tbl,'Th',{'R1','R2'}) legend

自 R2021b 开始提供
绘制表中数据并自定义颜色和标记大小的一种方法是设置 ColorVariable 和 SizeData 属性。您可以在调用 polarscatter 函数时将这些属性设置为名称-值参量,也可以稍后在 Scatter 对象上设置它们。
例如,创建一个包含三个随机数变量的表,并用填充标记绘制 Th 和 R 变量。通过指定 ColorVariable 名称-值参量来更改标记颜色。将 Scatter 对象返回为 s,以便以后可以设置其他属性。
Th = linspace(0,2*pi,50)'; R = randi([0 10],50,1); Colors = rand(50,1); tbl = table(Th,R,Colors); s = polarscatter(tbl,'Th','R','filled','ColorVariable','Colors');

通过设置 SizeData 属性,将标记大小更改为 100 磅。
s.SizeData = 100;

输入参数
Theta 值,指定为标量、向量或矩阵。散点图对象的 ThetaData 属性存储 theta 值。
theta 的大小和形状取决于数据的形状。下表说明了最常见的情况。
| 绘图类型 | 如何指定坐标 |
|---|---|
| 单点 | 将 polarscatter(pi/2,0.5) |
| 一组点 | 指定 polarscatter([0 pi/4 pi/2],[1; 2; 3]) |
| 不同颜色的多组点 | 如果所有组共享相同的 theta 或 rho 值,请将共享坐标指定为一个向量,将其他坐标指定为一个矩阵。该向量的长度必须与该矩阵的维度之一相匹配。例如: polarscatter([0 pi/4 pi/2],[4 5 6; 7 8 9]) polarscatter 将为矩阵中的每列绘制一组单独的点。也可以指定 polarscatter([0 pi/6 pi/2; pi/8 pi/4 pi],[1 2 3; 4 5 6]) |
要将度转换为弧度,请使用 deg2rad。
数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
rho 值,指定为标量、向量或矩阵。散点图对象的 RData 属性存储 rho 值。
rho 的大小和形状取决于数据的形状。下表说明了最常见的情况。
| 绘图类型 | 如何指定坐标 |
|---|---|
| 单点 | 将 polarscatter(pi/2,0.5) |
| 一组点 | 指定 polarscatter([0 pi/4 pi/2],[1; 2; 3]) |
| 不同颜色的多组点 | 如果所有组共享相同的 theta 或 rho 值,请将共享坐标指定为一个向量,将其他坐标指定为一个矩阵。该向量的长度必须与该矩阵的维度之一相匹配。例如: polarscatter([0 pi/4 pi/2],[4 5 6; 7 8 9]) polarscatter 将为矩阵中的每列绘制一组单独的点。也可以指定 polarscatter([0 pi/6 pi/2; pi/8 pi/4 pi],[1 2 3; 4 5 6]) |
数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
标记大小,指定为数值标量、向量、矩阵或空数组 ([])。大小控制每个标记的区域(以平方磅为单位)。空数组指定 36 磅的默认大小。指定大小的方式取决于您如何指定 theta 和 rho,以及您所需的绘图外观。下表说明了最常见的情况。
| 所需的标记大小 | theta 和 rho | sz | 示例 |
|---|---|---|---|
所有点的大小均相同 | 标量 | 将 th = [0 pi/6 pi/2]; r = [1 2; 2 4; 5 6]; polarscatter(th,r,100) | |
每个点的大小不同 | 相同长度的向量 |
| 将 th = [0 pi/6 pi/2]; r = [1; 2; 3]; sz = [50 500 100]; polarscatter(th,r,sz) 将 th = [0 pi/6 pi/2]; r = [1; 2; 3]; sz = [50 500 100; 300 1000 200]; polarscatter(th,r,sz) |
每个点的大小不同 |
|
| 将 th = [0 pi/6 pi/2]; r = [1 2; 2 4; 5 6]; sz = [50 500 1000]; polarscatter(th,r,sz) 将 th = [0 pi/6 pi/2]; r = [1 2; 2 4; 5 6]; sz = [50 500; 1000 2000; 100 300]; polarscatter(th,r,sz) |
数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
标记颜色,指定为颜色名称、RGB 三元组、RGB 三元组矩阵或由颜色图索引组成的向量。
颜色名称 - 颜色名称(如
'red')或短名称(如'r')。RGB 三元组 - 三元素行向量,其元素分别指定颜色中红、绿、蓝分量的强度。强度值必须位于
[0,1]范围内,例如[0.4 0.6 0.7]。RGB 三元组对于创建自定义颜色很有用。RGB 三元组矩阵 - 三列矩阵,其中的每一行均为一个 RGB 三元组。
由颜色图索引组成的向量 - 数值向量,其长度与
theta和rho向量相同。
指定颜色的方式取决于所需的颜色方案以及是绘制一组坐标还是多组坐标。下表说明了最常见的情况。
| 颜色方案 | 指定颜色的方式 | 示例 |
|---|---|---|
对所有点使用一种颜色。 | 从下表中指定一种颜色名称或短名称,或指定一个 RGB 三元组。 | 绘制一组点,并将颜色指定为 th = [0 pi/6 pi/2];
r = [1 2 3];
c = 'red';
polarscatter(th,r,[],c)绘制两组点,并使用一个 RGB 三元组将颜色指定为红色。 th = [0 pi/6 pi/2]; r = [1 2; 2 4; 5 6]; c = [1 0 0]; polarscatter(th,r,[],c) |
使用颜色图为每个点指定不同颜色。 | 指定一个由数字组成的行向量或列向量。当前颜色图数组中的数值索引。最小值映射到颜色图中的第一行,最大值映射到最后一行。中间值线性映射到中间行。 如果您的绘图有三个点,请指定一个列向量,以确保这些值被解释为颜色图索引。 仅当 | 创建一个向量 th = [0 pi/6 pi/2 2*pi/3];
r = [1 2 3 4];
c = [1 2 3 4];
polarscatter(th,r,[],c)
colormap(gca,'winter') |
为每个点创建一种自定义颜色。 | 指定一个由 RGB 三元组组成的 m×3 矩阵,其中 m 是图中的点数。 仅当 | 创建一个矩阵 th = [0 pi/6 pi/2 2*pi/3]; r = [1 2 3 4]; c = [1 0 0; 0 1 0; 0 0 1; 0 0 0]; polarscatter(th,r,[],c) |
为每个数据集创建一种不同颜色。 | 指定一个由 RGB 三元组组成的 n×3 矩阵,其中 n 为数据集个数。 仅当 | 创建一个包含两个 RGB 三元组的矩阵 th = [0 pi/6 pi/2]; r = [1 2; 2 4; 5 6]; c = [1 0 0; 0 0 1]; polarscatter(th,r,[],c) |
常见颜色的颜色名称和 RGB 三元组
| 颜色名称 | 短名称 | RGB 三元组 | 十六进制颜色代码 | 外观 |
|---|---|---|---|---|
"red" | "r" | [1 0 0] | "#FF0000" |
|
"green" | "g" | [0 1 0] | "#00FF00" |
|
"blue" | "b" | [0 0 1] | "#0000FF" |
|
"cyan" | "c" | [0 1 1] | "#00FFFF" |
|
"magenta" | "m" | [1 0 1] | "#FF00FF" |
|
"yellow" | "y" | [1 1 0] | "#FFFF00" |
|
"black" | "k" | [0 0 0] | "#000000" |
|
"white" | "w" | [1 1 1] | "#FFFFFF" |
|
下表列出了浅色和深色主题中绘图的默认调色板。
| 调色板 | 调色板颜色 |
|---|---|
在 R2025a 之前的版本中: 大多数绘图默认使用这些颜色。 |
|
|
|
您可以使用 orderedcolors 和 rgb2hex 函数获取这些调色板的 RGB 三元组和十六进制颜色代码。例如,获取 "gem" 调色板的 RGB 三元组并将其转换为十六进制颜色代码。
RGB = orderedcolors("gem");
H = rgb2hex(RGB);在 R2023b 之前的版本中: 使用 RGB = get(groot,"FactoryAxesColorOrder") 获取 RGB 三元组。
在 R2024a 之前的版本中: 使用 H = compose("#%02X%02X%02X",round(RGB*255)) 获取十六进制颜色代码。
数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | char | string
标记符号,指定为下表中列出的标记符号之一。
| 标记 | 描述 | 生成的标记 |
|---|---|---|
"o" | 圆圈 |
|
"+" | 加号 |
|
"*" | 星号 |
|
"." | 点 |
|
"x" | 叉号 |
|
"_" | 水平线条 |
|
"|" | 垂直线条 |
|
"square" | 方形 |
|
"diamond" | 菱形 |
|
"^" | 上三角 |
|
"v" | 下三角 |
|
">" | 右三角 |
|
"<" | 左三角 |
|
"pentagram" | 五角形 |
|
"hexagram" | 六角形 |
|
散点图对象的 Marker 属性存储标记符号。
包含要绘制的数据的源表,指定为表或时间表。
包含 theta 值的表变量,指定为一个或多个表变量索引。
指定表索引
使用以下任一索引方案指定所需的一个或多个变量。
| 索引方案 | 示例 |
|---|---|
变量名称:
|
|
变量索引:
|
|
变量类型:
|
|
绘制您的数据
您指定的表变量可以包含任何数值数据类型。
要绘制一个数据集,请为 thetavar 指定一个变量,为 rhovar 指定一个变量。例如,创建一个包含三个变量的表。绘制 Th 和 R1 变量。
% Create a table of random numbers Th = linspace(0,2*pi,10)'; R1 = randi([0 10],10,1); R2 = randi([20 30],10,1); tbl = table(Th,R1,R2); % Create polar scatter chart polarscatter(tbl,'Th','R1')
要一起绘制多个数据集,请为 thetavar、rhovar 或两者指定多个变量。如果为两个参量都指定多个变量,则每个参量的变量数目必须相同。
例如,在 theta 轴上绘制 Th 变量,在 r 轴上绘制 R1 和 R2 变量。
polarscatter(tbl,'Th',{'R1','R2'})
您还可以对表变量使用不同索引方案。例如,将 thetavar 指定为变量名称,将 rhovar 指定为索引编号。
polarscatter(tbl,'Th',2)包含 rho 值的表变量,指定为一个或多个表变量索引。
指定表索引
使用以下任一索引方案指定所需的一个或多个变量。
| 索引方案 | 示例 |
|---|---|
变量名称:
|
|
变量索引:
|
|
变量类型:
|
|
绘制您的数据
您指定的表变量可以包含任何数值数据类型。
要绘制一个数据集,请为 thetavar 指定一个变量,为 rhovar 指定一个变量。例如,创建一个包含三个变量的表。绘制 Th 和 R1 变量。
% Create a table of random numbers Th = linspace(0,2*pi,10)'; R1 = randi([0 10],10,1); R2 = randi([20 30],10,1); tbl = table(Th,R1,R2); % Create polar scatter chart polarscatter(tbl,'Th','R1')
要一起绘制多个数据集,请为 thetavar、rhovar 或两者指定多个变量。如果为两个参量都指定多个变量,则每个参量的变量数目必须相同。
例如,在 theta 轴上绘制 Th 变量,在 r 轴上绘制 R1 和 R2 变量。
polarscatter(tbl,'Th',{'R1','R2'})
您还可以对表变量使用不同索引方案。例如,将 thetavar 指定为变量名称,将 rhovar 指定为索引编号。
polarscatter(tbl,'Th',2)PolarAxes 对象。如果您不指定极坐标区,polarscatter 将使用当前坐标区。polarscatter 不支持在笛卡尔坐标区中绘图。
名称-值参数
以 Name1=Value1,...,NameN=ValueN 的形式指定可选参量对组,其中 Name 是参量名称,Value 是对应的值。名称-值参量必须出现在其他参量之后,但对各个参量对组的顺序没有要求。
在 R2021a 之前,使用逗号分隔每个名称和值,并用引号将 Name 引起来。
示例: polarscatter(th,r,'filled','MarkerFaceAlpha',.5) 创建经过填充的半透明标记。
此处列出的散点图对象属性只是其中的一部分。有关完整列表,请参阅 Scatter 属性。
标记面透明度,指定为 [0,1] 范围中的标量。值为 1 表示不透明,值为 0 表示透明。介于 0 和 1 之间的值表示半透明。
标记轮廓颜色,指定为 "flat"、RGB 三元组、十六进制颜色代码、颜色名称或短名称。默认值 "flat" 将使用 CData 属性中的颜色。
对于自定义颜色,请指定 RGB 三元组或十六进制颜色代码。
RGB 三元组是包含三个元素的行向量,其元素分别指定颜色中红、绿、蓝分量的强度。强度值必须位于
[0,1]范围内,例如[0.4 0.6 0.7]。十六进制颜色代码是字符串标量或字符向量,以井号 (
#) 开头,后跟三个或六个十六进制数字,范围可以是0到F。这些值不区分大小写。因此,颜色代码"#FF8800"与"#ff8800"、"#F80"与"#f80"是等效的。
此外,还可以按名称指定一些常见的颜色。下表列出了一些命名颜色选项、其等效 RGB 三元组及十六进制颜色代码。
| 颜色名称 | 短名称 | RGB 三元组 | 十六进制颜色代码 | 外观 |
|---|---|---|---|---|
"red" | "r" | [1 0 0] | "#FF0000" |
|
"green" | "g" | [0 1 0] | "#00FF00" |
|
"blue" | "b" | [0 0 1] | "#0000FF" |
|
"cyan" | "c" | [0 1 1] | "#00FFFF" |
|
"magenta" | "m" | [1 0 1] | "#FF00FF" |
|
"yellow" | "y" | [1 1 0] | "#FFFF00" |
|
"black" | "k" | [0 0 0] | "#000000" |
|
"white" | "w" | [1 1 1] | "#FFFFFF" |
|
"none" | 不适用 | 不适用 | 不适用 | 无颜色 |
下表列出了浅色和深色主题中绘图的默认调色板。
| 调色板 | 调色板颜色 |
|---|---|
在 R2025a 之前的版本中: 大多数绘图默认使用这些颜色。 |
|
|
|
您可以使用 orderedcolors 和 rgb2hex 函数获取这些调色板的 RGB 三元组和十六进制颜色代码。例如,获取 "gem" 调色板的 RGB 三元组并将其转换为十六进制颜色代码。
RGB = orderedcolors("gem");
H = rgb2hex(RGB);在 R2023b 之前的版本中: 使用 RGB = get(groot,"FactoryAxesColorOrder") 获取 RGB 三元组。
在 R2024a 之前的版本中: 使用 H = compose("#%02X%02X%02X",round(RGB*255)) 获取十六进制颜色代码。
示例: [0.5 0.5 0.5]
示例: "blue"
示例: "#D2F9A7"
标记填充颜色,指定为 "flat"、"auto"、RGB 三元组、十六进制颜色代码、颜色名称或短名称。"flat" 选项使用 CData 值。"auto" 选项使用与坐标区的 Color 属性相同的颜色。
对于自定义颜色,请指定 RGB 三元组或十六进制颜色代码。
RGB 三元组是包含三个元素的行向量,其元素分别指定颜色中红、绿、蓝分量的强度。强度值必须位于
[0,1]范围内,例如[0.4 0.6 0.7]。十六进制颜色代码是字符串标量或字符向量,以井号 (
#) 开头,后跟三个或六个十六进制数字,范围可以是0到F。这些值不区分大小写。因此,颜色代码"#FF8800"与"#ff8800"、"#F80"与"#f80"是等效的。
此外,还可以按名称指定一些常见的颜色。下表列出了一些命名颜色选项、其等效 RGB 三元组及十六进制颜色代码。
| 颜色名称 | 短名称 | RGB 三元组 | 十六进制颜色代码 | 外观 |
|---|---|---|---|---|
"red" | "r" | [1 0 0] | "#FF0000" |
|
"green" | "g" | [0 1 0] | "#00FF00" |
|
"blue" | "b" | [0 0 1] | "#0000FF" |
|
"cyan" | "c" | [0 1 1] | "#00FFFF" |
|
"magenta" | "m" | [1 0 1] | "#FF00FF" |
|
"yellow" | "y" | [1 1 0] | "#FFFF00" |
|
"black" | "k" | [0 0 0] | "#000000" |
|
"white" | "w" | [1 1 1] | "#FFFFFF" |
|
"none" | 不适用 | 不适用 | 不适用 | 无颜色 |
下表列出了浅色和深色主题中绘图的默认调色板。
| 调色板 | 调色板颜色 |
|---|---|
在 R2025a 之前的版本中: 大多数绘图默认使用这些颜色。 |
|
|
|
您可以使用 orderedcolors 和 rgb2hex 函数获取这些调色板的 RGB 三元组和十六进制颜色代码。例如,获取 "gem" 调色板的 RGB 三元组并将其转换为十六进制颜色代码。
RGB = orderedcolors("gem");
H = rgb2hex(RGB);在 R2023b 之前的版本中: 使用 RGB = get(groot,"FactoryAxesColorOrder") 获取 RGB 三元组。
在 R2024a 之前的版本中: 使用 H = compose("#%02X%02X%02X",round(RGB*255)) 获取十六进制颜色代码。
示例: [0.3 0.2 0.1]
示例: "green"
示例: "#D2F9A7"
标记边的宽度,指定为一个正值(以磅为单位)。
示例: 0.75
包含颜色数据的表变量,指定为源表的变量索引。
指定表索引
使用以下任一索引方案指定所需的变量。
| 索引方案 | 示例 |
|---|---|
变量名称:
|
|
变量索引:
|
|
变量类型:
|
|
指定颜色数据
指定 ColorVariable 属性控制标记的颜色。当 MarkerFaceColor 属性设置为 "flat" 时,变量中的数据控制标记填充颜色。当 MarkerEdgeColor 设置为 "flat" 时,数据还可以控制标记轮廓颜色。
您指定的表变量可以包含任何数值类型的值。这些值可以是以下形式之一:
线性映射到当前颜色图中的一列数字。
由 RGB 三元组组成的一个三列数组。RGB 三元组是包含三个元素的向量,其元素值指定特定颜色的红、绿和蓝分量的强度。强度必须处于范围
[0,1]中。例如,[0.5 0.7 1]指定浅蓝色。
当您设置 ColorVariable 属性时,MATLAB® 会更新 CData 属性。
版本历史记录
在 R2016b 中推出当您将表和一个或多个变量名称传递给 polarscatter 函数时,图例标签现在会显示表变量名称中包含的任何特殊字符,如下划线。以前,特殊字符会被解释为 TeX 或 LaTeX 字符。
例如,如果将包含名为 Sample_Number 的变量的表传递给 polarscatter 函数,然后显示图例,则下划线会出现在图例标签中。在 R2022a 及更早版本中,下划线解释为下标。
| 版本 | 表变量 "Sample_Number" 的标签 |
|---|---|
R2022b |
|
R2022a |
|
要使用 TeX 或 LaTeX 格式显示图例标签,请在绘图后使用所需的标签字符串调用 legend 函数。例如:
legend(["Sample_Number" "Another_Legend_Label"])
通过将表传递给 polarscatter 函数并后跟要绘制的变量来创建图。当您将数据指定为表时,会自动使用表变量名称对轴标签和图例(如果有)进行标注。
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
- América Latina (Español)
- Canada (English)
- United States (English)
欧洲
- 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)


























