首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >绘制均匀连续分布的CDF

绘制均匀连续分布的CDF
EN

Stack Overflow用户
提问于 2020-01-22 11:40:34
回答 1查看 1.5K关注 0票数 1

我正在尝试绘制均匀连续分布的pdf和cdf。代码如下:

代码语言:javascript
复制
from scipy.stats import uniform
import matplotlib.pyplot as plt
import numpy as np

fig, ax = plt.subplots(1, 1)

# Genrating uniform distribution
uniform_distribution = uniform.rvs(0, 1, 1000)
x = np.linspace(uniform.ppf(0.01),uniform.ppf(0.99), 1000)
ax.hist(uniform_distribution, density=True, histtype='stepfilled', alpha=0.2)

# Plotting pdf
pdf = uniform.pdf(x)
ax.plot(x, pdf, 'r-', lw=5, alpha=0.6, label='pdf')

# Plotting cdf
cdf = uniform.cdf(x)
ax.plot(x, cdf, 'k-', lw=2, label='cdf')
ax.legend(loc='best', frameon=False)

在对一些值进行实验后,我得到了正确的结果。据我所知,变量x用于x轴值绘制pdf和cdf,可以看到这两个函数都传递了这两个参数。uniform_distribution变量接受实际的分布。

但是函数uniform.pdfuniform.cdf使用x,这似乎不直观。在这两个函数中更改x时,我得到了原样的pdf图,但cdf被扭曲了。不确定cdf和pdf函数的确切参数应该是什么以及为什么。

EN

回答 1

Stack Overflow用户

发布于 2020-01-24 13:43:13

您可以更改ab以查看不同的图形:

代码语言:javascript
复制
from scipy.stats import uniform
import matplotlib.pyplot as plt
import numpy as np

a, b = 1, 5
size = 1000

fig, ax = plt.subplots(1, 1)

# Genrating uniform distribution
uniform_distribution = uniform(loc=a, scale=b)
x = np.linspace(uniform_distribution.ppf(0), uniform_distribution.ppf(1), size)

# Plotting pdf
pdf = uniform_distribution.pdf(x)
ax.plot(x, pdf, 'r-', lw=5, alpha=0.6, label='pdf')

# Plotting cdf
cdf = uniform_distribution.cdf(x)
ax.plot(x, cdf, 'k-', lw=2, label='cdf')
ax.legend(loc='best', frameon=False)

# Histogram
ax.hist(uniform_distribution.rvs(size=size), density=True, histtype='stepfilled', alpha=0.2)
ax.set_ylim(-0.05, 1.05)

fig.show()

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59852272

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档