2015-06-19 48 views
2

我有三个相同长度的向量。其中两个包含我想绘制的坐标的XY。第三个包含我想要关联绘制圆的半径的值。如何将'MarkerSize'关联到一个表示圆形半径的值?

我读过'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

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

嗯,你知道有一个圆的周长与半径之间的关系:

来源:Math Is Fun

因此,一个圆的周长等于pi乘以直径,这是半径的两倍......如此:

C = 2*pi*r 

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

换句话说,这样对你的attribute向量,假设您所报告的半径

attribute = floor(2*pi*attribute); 

现在用MarkerSizeplot使用。


另一方面,如果你想使用scatter ...那么你知道有一个圆的面积和它的半径之间的关系:

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

来源:WikiHow

因此,给定的半径,只需pi方半径和繁殖获得该区域,然后使用这个作为第三个参数以scatter ...再次计算浮点精度:

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

您现在可以使用scatter

+1

有没有更好的答案?我不信。 @rayryeng。非常感谢您的回答以及让您的答案更好的详细信息。 – Gohann

+0

@Gohann - 不客气:)请考虑接受我的答案,如果你不再需要帮助。祝你好运! – rayryeng

+0

@Gohann - 谢谢:) – rayryeng