我想在给定线上方或下方的 x,y 散点图上生成随机点。例如,如果线是 y=x,我想在图的左上角(线上方)生成一个点列表,并在图的右下角(线下方)生成一个点列表。这是一个示例,其中点高于或低于 y=5:
import random
import matplotlib.pyplot as plt
num_points = 10
x1 = [random.randrange(start=1, stop=9) for i in range(num_points)]
x2 = [random.randrange(start=1, stop=9) for i in range(num_points)]
y1 = [random.randrange(start=1, stop=5) for i in range(num_points)]
y2 = [random.randrange(start=6, stop=9) for i in range(num_points)]
plt.scatter(x1, y1, c='blue')
plt.scatter(x2, y2, c='red')
plt.show()
Run Code Online (Sandbox Code Playgroud)
但是,我独立生成了 x 和 y 点,这将我限制为 y = c(其中 c 是常数)的方程。如何将其扩展为任何 y=mx+b?
您可以更改停止和启动极限y1
,并y2
成为你想要的线路。您需要决定飞机的终点(设置lower
和upper
)。
请注意,这仅适用于整数。如果您想要更复杂的东西,您可以使用截断的多元分布。
m, b = 1, 0
lower, upper = -25, 25
x1 = [random.randrange(start=1, stop=9) for i in range(num_points)]
x2 = [random.randrange(start=1, stop=9) for i in range(num_points)]
y1 = [random.randrange(start=lower, stop=m*x+b) for x in x1]
y2 = [random.randrange(start=m*x+b, stop=upper) for x in x2]
plt.plot(np.arange(10), m*np.arange(10)+b)
plt.scatter(x1, y1, c='blue')
plt.scatter(x2, y2, c='red')
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5151 次 |
最近记录: |