当前位置:网站首页>MATLAB中polarscatter函数使用

MATLAB中polarscatter函数使用

2022-07-07 11:05:00 jk_101

目录

语法

说明

向量和矩阵数据

表数据

其他选项

示例

创建散点图

使用填充标记并设置标记大小

使用具有不同大小和颜色的标记 

绘图之前从度转换为弧度 

合并两个散点图 

创建散点图之后进行修改 

绘制表中的数据 

使用自定义标记大小和颜色绘制表数据 


        polarscatter函数的功能是极坐标中的散点图。

语法

polarscatter(theta,rho)
polarscatter(theta,rho,sz)
polarscatter(theta,rho,sz,c)
polarscatter(___,mkr)
polarscatter(___,'filled')
polarscatter(tbl,thetavar,rhovar)
polarscatter(tbl,thetavar,rhovar,'filled')
polarscatter(pax,___)
polarscatter(___,Name,Value)
ps = polarscatter(___)

说明

向量和矩阵数据

        ​polarscatter(theta,rho) 绘制 theta 对 rho 的图,并在每个数据点显示一个圆形标记示。theta 和 rho 必须是具有相同长度的向量。必须以弧度为单位指定 theta。​

  • 要绘制一组点,请将 theta 和 rho 指定为等长向量。

  • 要在同一极坐标区内绘制多组点,请将 theta 或 rho 中的至少一个指定为矩阵。

        ​polarscatter(theta,rho,sz) 设置标记大小,其中 sz 以平方磅为单位指定每个标记的面积。要以相同的大小绘制所有标记,请将 sz 指定为标量。要绘制具有不同大小的标记,请指定为向量或矩阵。

        ​polarscatter(theta,rho,sz,c) 指定标记颜色。您可以为所有标记指定一种颜色,也可以更改颜色。例如,可以通过将 c 指定为 'red' 来绘制所有红色圆。

        ​polarscatter(___,mkr) 设置标记符号。例如,'+' 显示十字标记。在上述语法中的任何输入参数组合之后指定标记符号。

        polarscatter(___,'filled') 填充标记内部。

表数据

        ​polarscatter(tbl,thetavar,rhovar) 绘制表 tbl 中的变量 thetavar 和 rhovar。要绘制一个数据集,请为 thetavar 指定一个变量,为 rhovar 指定一个变量。要绘制多个数据集,请为 thetavar、rhovar 或两者指定多个变量。如果两个参数都指定多个变量,它们指定的变量数目必须相同。(自 R2021b 开始提供)​

        ​polarscatter(tbl,thetavar,rhovar,'filled') 用实心圆绘制表中的指定变量。(自 R2021b 开始提供)​

其他选项

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

        如图所示:

使用填充标记并设置标记大小

        通过指定可选的输入参数 '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:

          ThetaData: [0.5236 1.0472 1.5708 2.0944 2.6180 3.1416 3.6652 ... ]
              RData: [0.8147 0.9058 0.1270 0.9134 0.6324 0.0975 0.2785 ... ]
              ZData: [1x0 double]
           SizeData: 36
              CData: [0 0.4470 0.7410]
             Marker: 'o'
    MarkerEdgeColor: 'none'
    MarkerFaceColor: 'flat'
          LineWidth: 0.5000

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

        如图所示:

        也可以同时绘制多个变量。例如,通过将 rvar 参数指定为元胞数组 {'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 - theta 值 

        Theta 值,指定为标量、向量或矩阵。散点图对象的 ThetaData 属性存储 theta 值。theta 的大小和形状取决于数据的形状。下表说明了最常见的情况。

绘图类型如何指定坐标
单点

将 theta 和 rho 指定为标量。例如:

polarscatter(pi/2,0.5)

一组点

指定 theta 和 rho 为相同长度的行向量或列向量的任意组合。例如:

polarscatter([0 pi/4 pi/2],[1; 2; 3])

不同颜色的多组点

如果所有组共享相同的 theta 或 rho 值,请将共享坐标指定为一个向量,将其他坐标指定为一个矩阵。该向量的长度必须与该矩阵的维度之一相匹配。例如:

polarscatter([0 pi/4 pi/2],[4 5 6; 7 8 9])
如果矩阵是方阵,polarscatter 将为矩阵中的每列绘制一组单独的点。

也可以指定 theta 和 rho 为相同大小的矩阵。在本例中,polarscatter 绘制 theta 的每列对 rho 的对应列的图。例如:

polarscatter([0 pi/6 pi/2; pi/8 pi/4 pi],[1 2 3; 4 5 6])

rho - rho 值

        rho 值,指定为标量、向量或矩阵。散点图对象的 RData 属性存储 rho 值。rho 的大小和形状取决于数据的形状。下表说明了最常见的情况。

绘图类型如何指定坐标
单点

将 theta 和 rho 指定为标量。例如:

polarscatter(pi/2,0.5)
一组点

指定 theta 和 rho 为相同长度的行向量或列向量的任意组合。例如:

polarscatter([0 pi/4 pi/2],[1; 2; 3])
不同颜色的多组点

如果所有组共享相同的 theta 或 rho 值,请将共享坐标指定为一个向量,将其他坐标指定为一个矩阵。该向量的长度必须与该矩阵的维度之一相匹配。例如:

polarscatter([0 pi/4 pi/2],[4 5 6; 7 8 9])
如果矩阵是方阵,polarscatter 将为矩阵中的每列绘制一组单独的点。

也可以指定 theta 和 rho 为相同大小的矩阵。在本例中,polarscatter 绘制 theta 的每列对 rho 的对应列的图。例如:

polarscatter([0 pi/6 pi/2; pi/8 pi/4 pi],[1 2 3; 4 5 6])

sz - 标记大小

        标记大小,指定为数值标量、向量、矩阵或空数组 ([])。大小控制每个标记的面积(以平方磅为单位)。空数组指定 36 磅的默认大小。指定大小的方式取决于如何指定 theta 和 rho,以及所需的绘图外观。下表说明了最常见的情况。

所需的标记大小theta 和 rhosz示例

所有点的大小均相同

针对 theta 和 rho 所述的向量或矩阵的任意有效组合。

标量

将 theta 指定为向量,将 rho 指定为矩阵,将 sz 指定为标量。

th = [0 pi/6 pi/2];
r = [1 2; 2 4; 5 6];
polarscatter(th,r,100)

每个点的大小不同

相同长度的向量

  • 与 theta 和 rho 长度相同的向量。

  • 有至少一个维度与 theta 和 rho 长度匹配的矩阵。指定矩阵对于在每个 (th,r) 位置显示不同大小的多个标记很有用。

将 theta、rho 和 sz 指定为向量。

th = [0 pi/6 pi/2];
r = [1; 2; 3];
sz = [50 500 100];
polarscatter(th,r,sz)

将 theta 和 rho 指定为向量,将 sz 指定为矩阵。

th = [0 pi/6 pi/2];
r = [1; 2; 3];
sz = [50 500 100; 300 1000 200];
polarscatter(th,r,sz)

每个点的大小不同

x 或 y 中有至少一个是用于绘制多个数据集的矩阵

  • 其元素数与每个数据集中的点数相同的向量。

  • 与 theta 或 rho 矩阵大小相同的矩阵。

将 theta 指定为向量,将 rho 指定为矩阵,将 sz 指定为向量。

th = [0 pi/6 pi/2];
r = [1 2; 2 4; 5 6];
sz = [50 500 1000];
polarscatter(th,r,sz)

将 theta 指定为向量,将 rho 指定为矩阵,将 sz 指定为与 rho 大小相同的矩阵。

th = [0 pi/6 pi/2];
r = [1 2; 2 4; 5 6];
sz = [50 500; 1000 2000; 100 300];
polarscatter(th,r,sz)

c - 标记颜色

        标记颜色,指定为颜色名称、RGB 三元组、RGB 三元组矩阵或由颜色图索引组成的向量。

  • 颜色名称 - 颜色名称(如 'red')或短名称(如 'r')。

  • RGB 三元组 - 三元素行向量,其元素分别指定颜色中红、绿、蓝分量的强度。强度值必须位于 [0,1] 范围内,例如 [0.4 0.6 0.7]。RGB 三元组对于创建自定义颜色很有用。

  • RGB 三元组矩阵 - 三列矩阵,其中的每一行均为一个 RGB 三元组。

  • 由颜色图索引组成的向量 - 数值向量,其长度与 theta 和 rho 向量相同。

        指定颜色的方式取决于所需的颜色方案以及是绘制一组坐标还是多组坐标。下表说明了最常见的情况。

颜色方案指定颜色的方式示例

对所有点使用一种颜色。

从下表中指定一种颜色名称或短名称,或指定一个 RGB 三元组。

绘制一组点,并将颜色指定为 'red'。

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)

使用颜色图为每个点指定不同颜色。

指定一个由数字组成的行向量或列向量。当前颜色图数组中的数值索引。最小值映射到颜色图中的第一行,最大值映射到最后一行。中间值线性映射到中间行。

如果绘图有三个点,请指定一个列向量,以确保这些值被解释为颜色图索引。

仅当 theta、rho 和 sz 均为向量时,才能使用此方法。

创建一个向量 c,它指定四个颜色图索引。使用当前颜色图中的颜色绘制四个点。然后,将颜色图更改为 winter。

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 是图中的点数。

仅当 theta、rho 和 sz 均为向量时,才能使用此方法。

创建一个矩阵 c,它指定四种颜色的 RGB 三元组。然后使用这些颜色创建并绘制四个点。

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 为数据集个数。

仅当 theta、rho 或 sz 中有至少一个是矩阵时,才能使用此方法。

创建一个包含两个 RGB 三元组的矩阵c。然后使用这些颜色绘制两个数据集。

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'

        以下是 MATLAB 在许多类型的绘图中使用的默认颜色的 RGB 三元组和十六进制颜色代码。

RGB 三元组十六进制颜色代码外观
[0 0.4470 0.7410]'#0072BD'

[0.8500 0.3250 0.0980]'#D95319'

[0.9290 0.6940 0.1250]'#EDB120'

[0.4940 0.1840 0.5560]'#7E2F8E'

[0.4660 0.6740 0.1880]'#77AC30'

[0.3010 0.7450 0.9330]'#4DBEEE'

[0.6350 0.0780 0.1840]'#A2142F'

mkr - 标记符号

        标记符号,指定为下表中列出的标记符号之一。

标记说明生成的标记
'o'圆圈

'+'加号

'*'星号

'.'

'x'叉号

'_'水平线条

'|'垂直线条

's'方形

'd'菱形

'^'上三角

'v'下三角

'>'右三角

'<'左三角

'p'五角形

'h'六角形

散点图对象的 Marker 属性存储标记符号。

tbl - 源表

        包含要绘制的数据的源表。将此参数指定为表或时间表。

thetavar - 包含 theta 值的表变量

        包含 theta 值的表变量,指定为一个或多个表变量索引。

指定表索引

        使用以下任一索引方案指定所需的一个或多个变量。

索引方案示例

变量名称:

  • 字符向量或字符串标量。

  • 元胞数组或字符串向量。

  • 'A' 或 "A" - 名为 A 的变量

  • {'A','B'} 或 ["A","B"] - 名为 A 和 B 的两个变量

变量编号:

  • 引用变量在表中位置的索引编号。

  • 由数字组成的向量。

  • 3 - 表中的第三个变量

  • [2 3] - 表中的第二个和第三个变量

逻辑向量:

  • n 元素逻辑向量,其中 logical 1 (true) 值表示所需的变量。

  • 可以省略最后一个 true 值后的尾部 false 值。

  • [false false true false] - m×4 表中的第三个变量

  • [false false true] - 任意大小的表中的第三个变量

  • [false true true] - 任意大小的表中的第二个和第三个变量

变量类型:

  • ​可选择指定类型表变量的 vartype 命令。

  • vartype('categorical') - 包含分类值的所有变量

绘制您的数据
        指定的表变量可以包含任何数值数据类型。

        要绘制一个数据集,请为 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)

rhovar - 包含 rho 值的表变量

        包含 rho 值的表变量,指定为一个或多个表变量索引。

指定表索引

        使用以下任一索引方案指定所需的一个或多个变量。

索引方案示例

变量名称:

  • 字符向量或字符串标量。

  • 元胞数组或字符串向量。

  • 'A' 或 "A" - 名为 A 的变量

  • {'A','B'} 或 ["A","B"] - 名为 A 和 B 的两个变量

变量编号:

  • 引用变量在表中位置的索引编号。

  • 由数字组成的向量。

  • 3 - 表中的第三个变量

  • [2 3] - 表中的第二个和第三个变量

逻辑向量:

  • n 元素逻辑向量,其中 logical 1 (true) 值表示所需的变量。

  • 可以省略最后一个 true 值后的尾部 false 值。

  • [false false true false] - m×4 表中的第三个变量

  • [false false true] - 任意大小的表中的第三个变量

  • [false true true] - 任意大小的表中的第二个和第三个变量

变量类型:

  • ​可选择指定类型表变量的 vartype 命令。

  • vartype('categorical') - 包含分类值的所有变量

原网站

版权声明
本文为[jk_101]所创,转载请带上原文链接,感谢
https://blog.csdn.net/jk_101/article/details/125406064