我有三个相同长度的矢量。其中两个包含我想要绘制的X
和Y
坐标。第三个包含我想要关联绘制圆的半径的值。
我已经读过'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
提前感谢您的帮助。
答案 0 :(得分:1)
假设您要使用MarkerSize
作为plot
的属性,正如您所说,此数字会以像素为单位报告绘制标记的周长。
嗯,你知道圆的圆周与半径之间存在关系:
来源:http://www.reddit.com/r/nsfw
因此,圆的圆周等于pi
乘以直径,即半径的两倍......所以:
C = 2*pi*r
C
将是MarkerSize
属性。因此,给定半径,只需乘以2*pi
即可获得所需的周长。请记住,上述计算将产生浮点值,因此要么采用floor
,要取ceil
或round
以获得所需的效果。
换句话说,假设您报告半径,请对您的attribute
向量执行此操作:
attribute = floor(2*pi*attribute);
现在将其与MarkerSize
和plot
一起使用。
另一方面,如果你想使用scatter
......那么你知道圆的面积与其半径之间存在关系:
因此,给定半径,只需将半径平方并乘以pi
得到该区域,然后将其用作scatter
的第三个参数...再次考虑浮点精度:
attribute = floor(pi*attribute.^2);
您现在可以将其与scatter
一起使用。