python hist 归一化
时间: 2023-11-06 14:08:43 浏览: 95
可以使用numpy库中的histogram函数来实现归一化,具体代码如下:
import numpy as np
data = np.random.randn(1000) # 生成1000个随机数
hist, bins = np.histogram(data, bins=10) # 计算直方图和直方图区间
hist_norm = hist / np.sum(hist) # 归一化
print(hist_norm) # 输出归一化后的直方图
相关问题
python的归一化直方图怎么画代码实现
以下是使用Python中的numpy和matplotlib库实现归一化直方图的代码:
```python
import numpy as np
import matplotlib.pyplot as plt
# 生成随机数据
data = np.random.randn(1000)
# 绘制原始数据的直方图
plt.hist(data, bins=30, density=False, alpha=0.5, color='b')
# 计算归一化的直方图
counts, bins = np.histogram(data, bins=30, density=True)
bin_centers = 0.5 * (bins[1:] + bins[:-1])
pdf = counts / np.sum(counts)
# 绘制归一化直方图
plt.plot(bin_centers, pdf, 'r')
# 添加图例和标签
plt.legend(['Normalized histogram', 'Raw data'])
plt.xlabel('Value')
plt.ylabel('Frequency')
plt.show()
```
解释一下代码:
首先,我们使用numpy库生成了1000个随机数据。然后,使用matplotlib的hist函数绘制了原始数据的直方图。
接下来,我们使用numpy的histogram函数计算数据的直方图,并将其归一化。
最后,我们使用matplotlib的plot函数绘制了归一化直方图,并添加了图例和标签,最终展示出来。
python hist函数
`hist()`函数是Matplotlib库中的一个函数,用于绘制直方图。它接收一个数组作为输入,然后将数据分成若干个区间,统计每个区间内的数据数量,最终绘制出直方图。
`hist()`函数的基本语法如下:
```python
plt.hist(x, bins=None, range=None, density=False, cumulative=False, histtype='bar', color=None, alpha=None, label=None, stacked=False, orientation='vertical', rwidth=None, log=False, align='mid', **kwargs)
```
其中,最重要的参数是 `x`,表示要绘制直方图的数据。其他参数分别表示直方图的属性,例如 `bins` 表示分成几个区间,`range` 表示数据的范围,`density` 表示是否对频数进行归一化,`cumulative` 表示是否绘制累积直方图等等。
下面是一个绘制直方图的例子:
```python
import matplotlib.pyplot as plt
import numpy as np
# 生成随机数据
data = np.random.randn(1000)
# 绘制直方图
plt.hist(data, bins=50, density=True, alpha=0.5)
# 添加标题和标签
plt.title('Histogram of Random Data')
plt.xlabel('Value')
plt.ylabel('Frequency')
# 显示图像
plt.show()
```
这段代码会生成一个随机数据的直方图,其中 `bins=50` 表示将数据分成50个区间, `density=True` 表示对频数进行归一化, `alpha=0.5` 表示透明度为0.5。
阅读全文