如何将 'MarkerSize' 关联到表示绘制圆的半径的值?

How to associate the 'MarkerSize' to a value that means the radius of a plotted circle?

我有三个相同长度的向量。其中两个包含我想要绘制的 XY 坐标。第三个包含我想关联绘制圆的半径的值。

我看过plot中的'MarkerSize'对应圆周上的点数,如果要用scatter,第三个向量对应圆周的面积绘制的圆。

尽管如此,我希望我的第三个矢量与半径相关联

因此,如何将圆的大小与半径联系起来?

我使用 plot:

hold on;
for nd = 1 : 24
    plot(xL(nd), -yL(nd), 'o', 'MarkerFaceColor', 'g', 'MarkerEdgeColor', 'k', 'MarkerSize', attribute(nd))
end

这使用 scatter:

hold on;
for nd = 1 : 24    
    scatter(xL(nd), -yL(nd), attribute(nd), 'o', 'MarkerFaceColor', 'k', 'MarkerEdgeColor', 'k')
end

在此先感谢您的帮助。

假设您要使用 MarkerSize 作为 plot 的属性,如您所说,此数字报告绘制标记的周长(以像素为单位)。

嗯,你知道圆的周长和它的半径是有关系的:

来源:Math Is Fun

因此,圆的周长等于pi乘以直径,也就是半径的两倍...所以:

C = 2*pi*r

C 将是 MarkerSize 属性。因此,给定一个半径,只需乘以 2*pi 即可得到所需的周长。请记住,上述计算将产生浮点值,因此要么采用 floor,要么采用 ceilround 以获得所需的效果。

换句话说,假设您要报告 radius:

,对您的 attribute 向量执行此操作
attribute = floor(2*pi*attribute);

现在将它与 MarkerSizeplot 一起使用。


另一方面,如果您想使用 scatter...您知道圆的面积与其半径之间存在关系:


(来源:whstatic.com

来源:WikiHow

因此,给定半径,只需将半径平方乘以pi即可得到面积,然后将其用作scatter的第三个参数...再次考虑浮动-点精度:

attribute = floor(pi*attribute.^2);

您现在可以将其与 scatter 一起使用。