您可以使用
viscircles(这需要
Image Processing Toolbox)轻松完成此操作,但我不认为输出实际上是您所期望的.
radius = 0.3524;
dots = plot(timeline, Origdata, '.');
hold on
for k = 1:numel(dots)
plotdata = get(dots(k));
centers = [plotdata.XData(:), plotdata.YData(:)];
% Ensure the the colors match the original plot
color = get(dots(k), 'Color');
viscircles(centers, radius * ones(size(centers(:,1))), 'Color', color);
end
看起来这是因为你的X数据相对于你的y数据非常接近,而圆圈显示为圆圈,我强迫轴的x和y比例相等(轴相等)
编辑
如果您只希望半径相对于y轴(距离),那么我们实际上需要绘制具有x和y半径的椭圆.我们希望缩放“x-radius”以使其显示为圆形而不管您的真实轴长宽比,这样的事情实际上可以做到这一点.
以下代码的技巧是将数据和绘图宽高比(pbaspect和daspect)设置为手动.这可确保在缩放,调整大小等过程中轴的纵横比不会发生变化,并确保我们的“圆圈”保持圆形外观.
dots = plot(timeline, Origdata, '.');
drawnow
% Force the aspect r