首页 > 编程知识 正文

Python实现正态分布图

时间:2023-11-19 12:41:26 阅读:296772 作者:RGIS

正态分布图是展示连续随机变量分布情况的一种图形化工具,通过以正态分布曲线为中心,展示数据在不同区间的分布情况,帮助我们了解数据的集中程度和离散程度。Python中可以使用matplotlib库来实现正态分布图。

一、导入必要的库

import numpy as np
import matplotlib.pyplot as plt

首先,我们需要导入numpy库和matplotlib.pyplot库。numpy库是Python中用于科学计算的一个核心库,提供了多维数组对象和一些数学函数,用于生成正态分布的数据;matplotlib.pyplot库则提供了绘制图形的功能。

二、生成正态分布的数据

# 设置随机种子,保证每次运行程序生成的随机数是固定的
np.random.seed(0)

# 生成正态分布的随机数
mean = 0
std_dev = 1
data = np.random.normal(mean, std_dev, 10000)

在生成正态分布的数据之前,我们可以通过设置随机种子来固定生成的随机数,这样可以保证每次运行程序都生成相同的随机数。然后,使用numpy.random.normal函数来生成10000个均值为0,标准差为1的正态分布随机数。

三、绘制正态分布图

# 设置绘图参数
bins = 100

# 绘制正态分布图
plt.hist(data, bins=bins, density=True, alpha=0.6, color='blue')

# 绘制正态分布的曲线
x = np.linspace(mean - 4 * std_dev, mean + 4 * std_dev, 100)
y = 1 / (std_dev * np.sqrt(2 * np.pi)) * np.exp(-(x - mean) ** 2 / (2 * std_dev ** 2))
plt.plot(x, y, color='red')

# 设置图形标题和轴标签
plt.title('正态分布图')
plt.xlabel('数据值')
plt.ylabel('概率密度')

# 显示图形
plt.show()

首先,我们设置绘图参数bins为100,表示将数据划分成100个区间。然后,使用matplotlib.pyplot的hist函数来绘制正态分布的直方图,其中density参数设置为True表示绘制的是概率密度分布,alpha参数设置为0.6表示图形的透明度,color参数设置为蓝色。接着,使用numpy.linspace函数生成x轴的数据,由均值减去4倍标准差到均值加上4倍标准差,以保证曲线能覆盖整个直方图的范围。然后,使用正态分布的概率密度函数计算对应的y轴的值。最后,使用matplotlib.pyplot的plot函数绘制正态分布的曲线,color参数设置为红色。设置图形的标题和轴标签,并使用matplotlib.pyplot的show函数显示图形。

四、完整代码示例

import numpy as np
import matplotlib.pyplot as plt

np.random.seed(0)
mean = 0
std_dev = 1
data = np.random.normal(mean, std_dev, 10000)

bins = 100
plt.hist(data, bins=bins, density=True, alpha=0.6, color='blue')

x = np.linspace(mean - 4 * std_dev, mean + 4 * std_dev, 100)
y = 1 / (std_dev * np.sqrt(2 * np.pi)) * np.exp(-(x - mean) ** 2 / (2 * std_dev ** 2))
plt.plot(x, y, color='red')

plt.title('正态分布图')
plt.xlabel('数据值')
plt.ylabel('概率密度')

plt.show()

以上是实现正态分布图的完整代码示例。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。