Python基于距离围绕固定中心均匀散布坐标

Python基于距离围绕固定中心均匀散布坐标,python,coordinates,distance,scatter-plot,scatter,Python,Coordinates,Distance,Scatter Plot,Scatter,我想根据每个数据点到中心的给定距离,在一个中心点(2.5,2.5)周围散布很多数据点。 我如何做到这一点,同时避免重复/将其均匀分布在中心周围 提前谢谢 import matplotlib.pyplot as plt import numpy as np fig = plt.figure(figsize=(6, 6)) N = 120 angles = np.linspace(0, 2 * np.pi, N) c_x, c_y = (2.5, 2.5) x_s, y_s = [], []

我想根据每个数据点到中心的给定距离,在一个中心点(2.5,2.5)周围散布很多数据点。 我如何做到这一点,同时避免重复/将其均匀分布在中心周围

提前谢谢

import matplotlib.pyplot as plt
import numpy as np

fig = plt.figure(figsize=(6, 6))

N = 120
angles = np.linspace(0, 2 * np.pi, N)
c_x, c_y = (2.5, 2.5)
x_s, y_s = [], []


distances = list(np.arange(0, 5.5, 0.5))

for distance in distances:
    for angle in angles:
        x_s.append(c_x + distance * np.cos(angle))
        y_s.append(c_y + distance * np.sin(angle))

    plt.scatter(x_s, y_s, c="b", s=4)
plt.show()

导入cmath
将numpy作为np导入
从matplotlib导入pyplot作为plt
从itertools导入星图
c=np.array(列表(星图(cmath.rect,[(v//40+1,v*np.pi/20)表示范围(120)])
x=c.real+2.5
y=c.imag+2.5
plt.散射(x,y)

为了澄清,我希望每个距离有一个点,然后下一个点偏移180或90度。但我根据Gustav Rasmussen提供的代码成功地完成了它:

import matplotlib.pyplot as plt
import numpy as np

fig = plt.figure(figsize=(6, 6))

#default
N = 50

angles = np.linspace(0, 2 * np.pi, N)
c_x, c_y = (2.5, 2.5)
x_s, y_s = [], []

distances = list(np.arange(0, 5.5, 0.01))
i = angles.size/4

for distance in distances:
    x_s.append(c_x + distance * np.cos(i))
    y_s.append(c_y + distance * np.sin(i))
    i += i
    plt.scatter(x_s, y_s, c="b", s=4)
plt.show()

在这里,我们可以看到550个距离,下一个显示的距离偏移约90度


最后一点:在处理偏差较大的数据集时,最好执行
i=angles.size/2
,以保持输出有点圆化

,因此生成的点应该位于给定距离的圆上?准确地说,并且最理想的是,下一个距离更远的点偏移180度或90度OK,我想我有东西给你,看起来很好。