簡體   English   中英

繪制均勻連續分布的 CDF

[英]Plotting CDF of Uniform continuous distribution

我正在嘗試繪制均勻連續分布的 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是用於繪制 pdf 和 cdf 的 x 軸值,可以看出這兩個函數都通過了。 uniform_distribution變量采用實際分布。

但是函數uniform.pdfuniform.cdf需要x ,這似乎不直觀。 在更改兩個函數中的x ,我得到了我的 pdf 圖,但 cdf 被扭曲了。 不確定 cdf 和 pdf 函數的確切參數應該是什么以及為什么。

您可以更改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()

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM