Пример рисунка представляет собой сумму двух двумерных случайных величин, которые мы можем назвать corners
и 2D uniform clusters
. Вы можете построить их, используя numpy примитивы, подобные этому.
import numpy as np
# corner locations of 2-D uniform clusters
corners = np.random.rand(4, 2)
# scale of square 2-D uniform variates
scale = 0.3
square_rand = scale * np.random.rand(500, 2)
# select random corners for each item and add
corner_ix = np.random.choice(4, 500)
four_clust = corners[corner_ix] + square_rand
Обратите внимание на коэффициент scale
, чтобы уменьшить форму единичного квадрата до 0,3 (измеряется глазным яблоком на графике рассеяния).
Версия 2, которая подходит к изображению ближе к вашему QPSK-подобному графику рассеяния:
import numpy as np
import matplotlib.pyplot as plt
# scale of square 2-D uniform variates
scale = 0.3
# corner locations of 2-D uniform clusters
centers = np.array([[0.2, 0.2], [0.2, 0.8], [0.8, 0.2], [0.8, 0.8]])
corners = centers - scale/2
square_rand = scale * np.random.rand(500, 2)
# select random corners for each item and add
corner_ix = np.random.choice(4, 500)
four_clust = corners[corner_ix] + square_rand
plt.plot(four_clust[:,0], four_clust[:,1], 'x')
plt.show()