[英]How to create a dataframe of a particular size containing both continuous and categorical values with a uniform random distribution
[英]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.pdf
和uniform.cdf
需要x
,這似乎不直觀。 在更改兩個函數中的x
,我得到了我的 pdf 圖,但 cdf 被扭曲了。 不確定 cdf 和 pdf 函數的確切參數應該是什么以及為什么。
您可以更改a
和b
以查看不同的數字:
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.