python做正态分布直方图
时间: 2023-11-15 18:00:00 浏览: 216
要在Python中绘制正态分布直方图,可以使用NumPy和Matplotlib库。以下是一些步骤:
1. 导入NumPy和Matplotlib库。
2. 使用NumPy的random.normal()函数生成一个正态分布的序列。
3. 将序列中的每个元素四舍五入为整数。
4. 使用NumPy的unique()函数获取序列中的唯一值和它们的出现次数。
5. 使用Matplotlib的scatter()函数绘制散点图。
下面是一个示例代码:
```
import numpy as np
import matplotlib.pyplot as plt
# 生成正态分布序列
n = 100000
ex = 1000
de = 20
y = np.random.normal(ex, de, n)
# 四舍五入为整数
y = np.round(y).astype(int)
# 获取唯一值和出现次数
un, cnt = np.unique(y, return_counts=True)
# 绘制散点图
plt.scatter(un, cnt)
plt.show()
```
这段代码将生成一个正态分布的直方图。其中,x轴表示数值,y轴表示该数值在序列中出现的次数。可以根据需要调整参数来改变直方图的样式和布局。
相关问题
用Python绘制正态分布直方图和曲线图,并放在一起
在Python中,你可以使用matplotlib库来绘制正态分布的直方图和概率密度函数(PDF)曲线。下面是一个简单的示例:
首先安装必要的库,如果还没安装的话:
```bash
pip install matplotlib numpy scipy
```
然后,我们可以使用以下代码来创建这两个图形:
```python
import matplotlib.pyplot as plt
import numpy as np
from scipy.stats import norm
# 创建一些随机数据,模拟正态分布
mu, sigma = 0, 0.1 # 正态分布的均值和标准差
data = norm.rvs(mu, sigma, size=1000) # 使用norm对象的rvs方法生成样本
# 绘制直方图
plt.hist(data, bins='auto', density=True, alpha=0.6, color='b', label='Histogram')
plt.title('Normal Distribution - Histogram')
# 绘制正态分布曲线
x = np.linspace(norm.ppf(0.01), norm.ppf(0.99), 100)
pdf = norm.pdf(x, mu, sigma)
plt.plot(x, pdf, 'r-', lw=2, label='PDF')
# 添加标题、标签和图例
plt.xlabel('Value')
plt.ylabel('Probability Density')
plt.legend(loc='upper right')
plt.show()
```
这个代码首先生成了一个正态分布的数据集,然后分别绘制了直方图和对应的概率密度函数曲线。直方图显示频率分布情况,而曲线则直观地展示概率密度随变量变化的趋势。
python画两组正态分布直方图
要使用Python画两组正态分布直方图,可以按照以下步骤进行操作:
1. 导入所需的库:
```python
import numpy as np
import matplotlib.pyplot as plt
```
2. 生成两组正态分布的随机数据:
```python
data_normal = np.random.normal(loc=0, scale=1, size=1000)
data_unknow = np.random.normal(loc=2, scale=0.5, size=1000)
```
3. 绘制直方图:
```python
plt.hist(data_normal, bins=30, alpha=0.5, label='Normal')
plt.hist(data_unknow, bins=30, alpha=0.5, label='Unknow')
plt.legend()
plt.xlabel('Value')
plt.ylabel('Frequency')
plt.title('Histogram of Two Groups of Normal Distributions')
plt.show()
```
这样就可以用Python画出两组正态分布的直方图。
阅读全文