在一个区域内生成随机散点的Python代码
时间: 2024-02-09 13:10:24 浏览: 126
以下是一个在一个区域内生成随机散点的Python代码示例,使用了numpy和matplotlib库:
```python
import numpy as np
import matplotlib.pyplot as plt
# 定义x值范围和y值范围
x_min, x_max = 0, 5
y_min, y_max = 0, 10
# 生成随机坐标
num_points = 1000
x = np.random.uniform(low=x_min, high=x_max, size=num_points)
y = np.random.uniform(low=y_min, high=y_max, size=num_points)
# 绘制随机散点
plt.scatter(x, y, s=5, c='r')
# 添加图例和标签
plt.legend(['Random points'])
plt.title('Random points in a region')
plt.xlabel('X values')
plt.ylabel('Y values')
# 显示图形
plt.show()
```
这段代码将在x值范围为0到5,y值范围为0到10的区域内生成1000个随机点,并将这些点绘制成红色散点图。您可以根据需要修改x和y值的范围和随机点的数量。
相关问题
在两条反比例函数之间的区域生成随机散点的Python代码
以下是一个在两条反比例函数之间的区域生成随机散点的Python代码示例,使用了numpy和matplotlib库:
```python
import numpy as np
import matplotlib.pyplot as plt
# 定义反比例函数1
def inverse_func1(x):
return 1/x
# 定义反比例函数2
def inverse_func2(x):
return 1/(x+1)
# 定义x值范围和y值范围
x_min, x_max = 0.1, 10
y_min, y_max = 0.1, 10
# 生成随机坐标
num_points = 1000
x = np.random.uniform(low=x_min, high=x_max, size=num_points)
y = np.random.uniform(low=y_min, high=y_max, size=num_points)
# 确定两条反比例函数之间的区域
x_vals = np.linspace(x_min, x_max, 100)
y1_vals = inverse_func1(x_vals)
y2_vals = inverse_func2(x_vals)
fill_x = np.concatenate([x_vals, x_vals[::-1]])
fill_y = np.concatenate([y1_vals, y2_vals[::-1]])
# 绘制两条反比例函数曲线和填充区域
plt.plot(x_vals, y1_vals, 'b-')
plt.plot(x_vals, y2_vals, 'b-')
plt.fill(fill_x, fill_y, alpha=0.2)
# 绘制随机散点
plt.scatter(x, y, s=5, c='r')
# 添加图例和标签
plt.legend(['Inverse function 1', 'Inverse function 2', 'Random points'])
plt.title('Random points between inverse functions')
plt.xlabel('X values')
plt.ylabel('Y values')
# 显示图形
plt.show()
```
这段代码将在两条反比例函数之间绘制一个填充区域,并在该区域内生成1000个随机点。您可以根据需要修改x和y值的范围和随机点的数量。
用python + matplotlib,随机生成100个点,分布于 -2≤x≤2,-2≤y≤2 的二维矩形区域内,将单位元内样本设置成+1正例样本,其他设置成负例-1样本,再画一个单位圆,用plot绘制出来,正例用蓝色小圆圈或原点,负例用红色x。
以下是代码实现:
```python
import numpy as np
import matplotlib.pyplot as plt
# 生成100个随机点
np.random.seed(0)
X = np.random.uniform(-2, 2, (100, 2))
# 将单位元内样本设置成正例,其他设置成负例
Y = np.zeros(100)
for i in range(100):
if X[i][0]**2 + X[i][1]**2 <= 1:
Y[i] = 1
else:
Y[i] = -1
# 画出单位圆
theta = np.linspace(0, 2*np.pi, 100)
x = np.cos(theta)
y = np.sin(theta)
plt.plot(x, y, 'k-')
# 根据正负例画出散点图
for i in range(100):
if Y[i] == 1:
plt.plot(X[i][0], X[i][1], 'bo')
else:
plt.plot(X[i][0], X[i][1], 'rx')
plt.xlim(-2, 2)
plt.ylim(-2, 2)
plt.show()
```
运行结果如下图所示:
![image.png](attachment:image.png)
阅读全文