You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用R的ggplot在圆内生成无中心聚类的随机散点

问题原因

你遇到的圆心聚集问题是极坐标随机点生成的经典误区:直接对半径r取runif(n)会导致单位面积内的点密度和r成反比——圆心附近的环带面积更小,相同数量的点落在小面积区域自然会看起来更聚集。

修复方案

仅需修改半径生成逻辑即可,因为圆的面积和半径平方成正比,对均匀随机值开平方后能让点在单位面积上的分布概率一致,从根源消除中心聚集问题。
将你代码中生成半径的代码行:

r <- runif(n)

修改为:

r <- sqrt(runif(n))

其余代码无需调整,运行后即可得到符合预期的圆内均匀随机散点效果。

错误方案说明

你之前尝试单独对x、y坐标使用sample()打乱的方法不可行:sample()会破坏原始(半径, 角度)对的匹配关系,拆分重排后的x和y不再满足x² + y² ≤ 1的圆内约束,因此会出现散点超出圆周、呈十字分布的异常效果。

内容的提问来源于stack exchange,提问作者Emman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.09 08:39:03