50个数值成正态分布范围为0-100 通过plt.bar()进行柱状绘制
时间: 2023-12-06 13:45:21 浏览: 42
可以使用Python中的random和numpy库来生成符合正态分布的50个随机数,并使用matplotlib库的plt.bar()函数进行柱状图绘制。
示例代码如下:
```python
import random
import numpy as np
import matplotlib.pyplot as plt
# 生成50个随机数,符合正态分布,范围为0-100
mu, sigma = 50, 10 # 均值和标准差
data = np.random.normal(mu, sigma, 50)
data = [x if x >= 0 else 0 for x in data] # 将小于0的数值设置为0
data = [x if x <= 100 else 100 for x in data] # 将大于100的数值设置为100
# 绘制柱状图
plt.bar(range(len(data)), data)
# 设置标题、坐标轴标签
plt.title('Normal Distribution')
plt.xlabel('Index')
plt.ylabel('Value')
plt.show()
```
运行以上代码,可以得到一个50个数值成正态分布范围为0-100的柱状图。
相关问题
正态分布柱状图50个数值呈正态分布,通过plt.bar()进行绘制
要绘制正态分布柱状图,可以使用numpy库生成正态分布随机数,然后使用matplotlib库中的plt.bar()函数绘制柱状图。
下面是一个示例代码,生成50个符合正态分布的随机数,并将它们分成10个区间,然后绘制柱状图:
```python
import numpy as np
import matplotlib.pyplot as plt
# 生成50个符合正态分布的随机数(均值为0,标准差为1)
data = np.random.normal(0, 1, 50)
# 将数据分成10个区间,并统计每个区间的数量
bins = np.linspace(-3, 3, 11)
counts, _ = np.histogram(data, bins=bins)
# 绘制柱状图
plt.bar(bins[:-1], counts, width=0.6, align='edge')
# 设置x轴标签和标题
plt.xlabel('Value')
plt.title('Normal Distribution Histogram')
# 显示图形
plt.show()
```
运行上述代码,即可得到一张正态分布柱状图。
50个数值成正态分布
为了生成50个数值成正态分布,我们可以使用Python中的numpy库。具体步骤如下:
1. 导入numpy库和matplotlib库(用于可视化)
```python
import numpy as np
import matplotlib.pyplot as plt
```
2. 定义均值和标准差
```python
mu, sigma = 0, 1 # 均值和标准差
```
3. 生成50个随机数值,满足正态分布
```python
data = np.random.normal(mu, sigma, 50)
```
4. 可以使用matplotlib库对数据进行可视化
```python
count, bins, ignored = plt.hist(data, 30, density=True)
plt.plot(bins, 1/(sigma * np.sqrt(2 * np.pi)) *
np.exp( - (bins - mu)**2 / (2 * sigma**2) ),
linewidth=2, color='r')
plt.show()
```
完整代码如下:
```python
import numpy as np
import matplotlib.pyplot as plt
mu, sigma = 0, 1 # 均值和标准差
data = np.random.normal(mu, sigma, 50)
count, bins, ignored = plt.hist(data, 30, density=True)
plt.plot(bins, 1/(sigma * np.sqrt(2 * np.pi)) *
np.exp( - (bins - mu)**2 / (2 * sigma**2) ),
linewidth=2, color='r')
plt.show()
```
运行代码后,将会生成一个正态分布的直方图。