在Python中产生n个服从一维高斯分布的随机数,绘制该数据的直方图和概率密度函数

import numpy as np
import matplotlib.pyplot as plt
# 生成一维高斯分布N
mu, sigma = 0, 1  # 均值和标准差
N = np.random.normal(mu, sigma, size=10000)
# 绘制直方图
plt.hist(N, bins=50, density=True, alpha=0.5, color='r')
plt.xlabel('Value')
plt.ylabel('Frequency')
plt.title('Histogram of Gaussian Distribution')
# 绘制概率密度函数
x = np.linspace(mu - 3 * sigma, mu + 3 * sigma, 100)
y = 1 / (np.sqrt(2 * np.pi) * sigma) * np.exp(-(x - mu) ** 2 / (2 * sigma ** 2))
plt.plot(x, y, color='b')
# 显示图像
plt.show()

在这个代码中,我们首先使用NumPy库生成一维高斯分布N。然后,使用Matplotlib库的hist方法绘制数据的直方图。bins参数指定了直方图的条数,density参数指定是否将直方图的值归一化为概率密度,alpha参数指定了直方图的透明度,color参数指定了直方图的颜色。接下来,我们使用NumPy库的linspace方法生成一个与直方图的x轴相同的数组,并使用高斯分布的概率密度函数计算y轴的值。最后,使用Matplotlib库的plot方法绘制概率密度函数的图像,并使用show方法显示图像。

猜你喜欢

转载自blog.csdn.net/change_xzt/article/details/129844195
今日推荐