核密度估计曲线的直方图
时间: 2025-01-02 15:39:11 浏览: 9
### 绘制带有核密度估计 (KDE) 曲线的直方图
在 Python 中,`matplotlib` 和 `seaborn` 是两个强大的库用于创建高质量的数据可视化图表。Seaborn 基于 Matplotlib 构建,并提供了更高级别的接口来绘制统计图形。
对于绘制带 KDE 的直方图而言,Seaborn 提供了一个简单的方法——`displot()` 函数可以方便地实现这一目标[^1]:
```python
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
# 创建随机数样本数据集
data = np.random.randn(1000)
# 使用 Seaborn displot 方法绘图
sns.displot(data, kind="hist", kde=True, bins=30, color='blue')
plt.title('Histogram with Kernel Density Estimate')
plt.xlabel('Value')
plt.ylabel('Frequency/Density')
plt.show()
```
这段代码首先导入必要的包并生成一组服从标准正态分布的伪随机数作为示例数据。接着调用了 `sns.displot()` 来同时显示直方图 (`kind="hist"`) 及其对应的核密度估计曲线(`kde=True`) 。参数 `bins` 控制着直方图柱状体的数量;而颜色可以通过设置 `color` 参数来自定义[^2]。
如果希望更加灵活控制图像属性,则可以直接利用 `ax.hist()` 结合 `sns.kdeplot()` 实现相同效果:
```python
fig, ax = plt.subplots()
# 绘制直方图
ax.hist(data, bins=30, density=True, alpha=0.6, color='g', label='Histogram')
# 添加核密度估计曲线
sns.kdeplot(data=data, shade=False, linewidth=2, color='r', label='KDE Curve')
ax.set_title('Custom Histogram and KDE Plot')
ax.set_xlabel('Values')
ax.set_ylabel('Density')
ax.legend()
plt.show()
```
这里通过手动指定子图对象 `ax` ,使得可以在同一个坐标系下分别添加直方图和 KDE 曲线。注意此时设置了 `density=True` 选项使直方图的高度表示概率密度而不是计数值[^3]。
阅读全文