python对数正态分布绘图
时间: 2025-01-11 20:14:33 浏览: 60
### 绘制对数正态分布图表
为了使用 `matplotlib` 或者 `seaborn` 库绘制对数正态分布图形,首先需要导入必要的库,并生成服从对数正态分布的数据样本。下面展示了具体的实现过程。
#### 导入所需库
```python
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import lognorm
```
#### 设置绘图参数
对于中文显示以及负号的支持可以通过如下配置来解决[^1]:
```python
plt.rcParams['axes.unicode_minus'] = False # 正常显示负号
plt.rcParams['font.sans-serif'] = ['KaiTi'] # 设置字体为楷体
```
#### 数据准备
创建一组遵循对数正态分布的数据集用于绘图:
```python
sigma = 0.8 # shape parameter
mu = 0 # scale parameter (exp of location)
s = np.random.lognormal(mean=np.log(mu), sigma=sigma, size=1000)
count, bins, ignored = plt.hist(s, 100, density=True, align='mid')
scale = count.max()/lognorm.pdf(bins.min(), s.std()).max()
pdf_fitted = lognorm.pdf(bins, s.std()) * scale
plt.plot(bins, pdf_fitted, linewidth=2, color='r', label="Fitted Log-Normal PDF")
plt.title('Log Normal Distribution Histogram and Fitted Curve')
plt.xlabel('Value')
plt.ylabel('Density')
plt.legend()
plt.show()
```
上述代码片段中,通过 `np.random.lognormal()` 函数生成了随机的对数正态分布数据点集合 `s` 。接着利用 `plt.hist()` 方法构建直方图的同时计算其概率密度函数(pdf),并通过红色线条描绘拟合后的对数正态曲线以便对比观察实际数据分布情况与理论模型之间的关系[^3]。
阅读全文
相关推荐

















