今天,来说下Matlab中用极坐标体系绘制散点图的函数polarscatter。该函数,可以在极坐标中绘制散点图,散点图在极坐标中体现为一个一个的扇形区域上的离散点,这与传统离散图中的矩形区域离散点有所不同。本文主要讲解极坐标离散图函数polarscatter的常见用法、语法说明、极坐标中创建散点图、使用已填充标记并设置标记大小、使用具有不同大小和颜色的标记、绘图之前从度转换为弧度、合并两个散点图以及创建散点图之后进行修改等方法。
下面,我们将开始详细的介绍polarscatter函数的语法介绍,实例引用,结果展示。由于极坐标散点图函数只有Matlab2020版本中可以,我这里安装的是Matlab2016版本,因此这里不再提供相关的帮助文档。此外,下文中出现的代码及运行结果均来源于官方文档教程。
常见用法
polarscatter(th,r) polarscatter(th,r,sz) polarscatter(th,r,sz,c) polarscatter(___,mkr) polarscatter(___,'filled') polarscatter(___,Name,Value) polarscatter(pax,___) ps = polarscatter(___)
语法说明
polarscatter(th,r) 绘制 th 对 r 的图,并在每个数据点显示一个圆圈。th 和 r 必须是具有相同长度的向量。必须以弧度为单位指定 th。
polarscatter(th,r,sz) 设置标记大小,其中 sz 以平方磅为单位指定每个标记的面积。要以相同的大小绘制所有标记,请将 sz 指定为标量。要以不同的大小绘制标记,请将 sz 指定为长度与 th 相同的向量。
polarscatter(th,r,sz,c) 设置标记颜色,其中 c 是向量、三列矩阵、RGB 三元组或颜色名称,例如 ‘red’。
polarscatter(___,mkr) 设置标记符号。例如,’+’ 显示十字标记。在上述语法中的任何输入参数组合之后指定标记符号。
polarscatter(___,’filled’) 填充标记内部。
polarscatter(___,Name,Value) 使用一个或多个名称-值对组参数修改散点图的外观。例如,您可以指定 ‘FaceAlpha’ 和一个介于 0 和 1 之间的标量值,从而使用半透明标记。
polarscatter(pax,___) 将在 pax 指定的极坐标区(而不是当前坐标区)中绘制图形。
ps = polarscatter(___) 返回 Scatter 对象。在创建 Scatter 对象之后可使用 ps 修改其外观。
极坐标中创建散点图
在极坐标中创建一个散点图。
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: Marker: 'o' MarkerEdgeColor: 'none' MarkerFaceColor: 'flat' SizeData: 36 LineWidth: 0.5000 ThetaData: [1x12 double] RData: [1x12 double] ZData: [1x0 double] CData: [0 0.4470 0.7410] Show all properties
在创建散点图对象之后可使用 ps 修改其属性。
ps.Marker = 'square'; ps.SizeData = 200; ps.MarkerFaceColor = 'red'; ps.MarkerFaceAlpha = .5;
转载文章,原文出处:MathWorks官网,由古哥整理发布
如若转载,请注明出处:https://iymark.com/articles/1316.html