在Python中绘制CDF(累积分布函数)图像,您可以使用以下方法:
1. 使用`matplotlib`和`scipy`库:
```python
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import norm
定义一个正态分布的例子
mu, sigma = 0, 1
x = np.linspace(mu - 3 * sigma, mu + 3 * sigma, 100) 生成x轴上的点
y = norm.cdf(x, mu, sigma) 计算相应的CDF值
绘制CDF图像
plt.plot(x, y)
plt.xlabel('X-axis')
plt.ylabel('CDF')
plt.title('CDF of a Normal Distribution (mu=0, sigma=1)')
plt.grid()
plt.show()
2. 使用`matplotlib`的`hist`函数,设置`cumulative=True`参数绘制CDF直方图:
```python
import numpy as np
import matplotlib.pyplot as plt
生成随机样本
samples = np.random.randn(10000)
绘制CDF直方图
plt.hist(samples, cumulative=True, density=True)
plt.xlabel('X-axis')
plt.ylabel('CDF')
plt.title('CDF of Random Samples')
plt.grid()
plt.show()
3. 使用`statsmodels`库计算ECDF(经验累积分布函数):
```python
import numpy as np
import matplotlib.pyplot as plt
import statsmodels.api as sm
生成随机样本
sample = np.random.randn(10000)
计算ECDF
ecdf = sm.distributions.ECDF(sample)
x = np.linspace(min(sample), max(sample))
y = ecdf(x)
绘制ECDF图像
plt.plot(x, y, linewidth='1', label='ECDF')
plt.xlabel('X-axis')
plt.ylabel('CDF')
plt.title('Empirical CDF of Random Samples')
plt.grid()
plt.legend()
plt.show()
以上代码展示了如何使用不同的库和方法绘制CDF图像。您可以根据需要修改参数和样本数据来绘制不同分布的CDF图像。