如何将'MarkerSize'与一个表示绘制圆的半径的值相关联?

时间:2015-06-19 17:38:24

标签: matlab plot scatter

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

我已经读过'MarkerSize'plot对应圆周上的点数,如果我想使用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

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

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

嗯,你知道圆的圆周与半径之间存在关系:

来源:http://www.reddit.com/r/nsfw

因此,圆的圆周等于pi乘以直径,即半径的两倍......所以:

C = 2*pi*r

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

换句话说,假设您报告半径,请对您的attribute向量执行此操作:

attribute = floor(2*pi*attribute);

现在将其与MarkerSizeplot一起使用。

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

Math Is Fun

来源:http://pad3.whstatic.com/images/thumb/2/2f/Calculate-the-Area-of-a-Circle-Step-7-Version-2.jpg/670px-Calculate-the-Area-of-a-Circle-Step-7-Version-2.jpg

因此,给定半径,只需将半径平方并乘以pi得到该区域,然后将其用作scatter的第三个参数...再次考虑浮点精度:

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

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