2015-06-19 49 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