我有兴趣在Matlab中绘制一个圆圈,但我希望它的中心可见。因为我希望它的中心用点标记。目前我正在使用scatter
功能两次:
scatter(1,2,1000,'r') # plots the circle
hold on
scatter(1,2,10,'r','filled') # plots the centre (as a very small circle
# so it appears like a dot)
我想知道是否有一个内置函数可以让我只用一步就能做到这一点?绘制一个中心可见的圆圈?
非常感谢
答案 0 :(得分:2)
您可以显示Unicode character U+2609,其中将圆圈和圆点合并为一个字符。
由于该数字2609是十六进制的,您需要使用hex2dec
将十六进制字符串转换为十进制数字,然后将该十进制数字解释为char
的Unicode字符。然后可以使用text
在当前轴上显示该字符。它也可以用于图标题,轴标签等,像任何其他字符串一样。
重复使用时,请在变量中定义字符
dotcircle = char(hex2dec('2609'));
然后你可以方便地使用它。例如:
axis([0 1 0 1])
title(['Example with character "' dotcircle '"'])
text(.25,.25, dotcircle, 'fontsize',20, 'color',[.3 .3 .3])
text(.5,.5, dotcircle, 'fontsize',40, 'color','r')
text(.75,.75, dotcircle, 'fontsize',60, 'color','b')
答案 1 :(得分:1)
我不相信有这样做的内置功能,但你可以轻松写一个:
function drawMyCircle(x, y, cirlce_r, center_r, color)
hold on;
scatter(x, y, circle_r, color);
scatter(x, y, center_r, color, 'fillled');
hold off;
如果你担心性能问题,那么这个问题就像你能得到的一样好--Matlab仍然需要绘制两个独立的对象才能完成这项工作。