【问题标题】:Plotting CDF of Uniform continuous distribution绘制均匀连续分布的 CDF
【发布时间】:2020-05-08 04:09:55
【问题描述】:

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

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 函数的确切参数应该是什么以及为什么。

【问题讨论】:

    标签: python-3.x machine-learning scipy statistics


    【解决方案1】:

    您可以更改ab 以查看不同的数字:

    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()
    

    【讨论】:

      猜你喜欢
      • 2021-04-07
      • 1970-01-01
      • 2021-06-03
      • 1970-01-01
      • 2018-01-25
      • 1970-01-01
      • 2011-04-04
      • 2021-11-23
      • 1970-01-01
      相关资源
      最近更新 更多