通过从文件中读取值来绘制 CDF:matplotlib
draw CDF by reading values from file : matplotlib
我需要绘制从文件中读取的整数值的 cdf。我正在按照示例 here 进行操作。我不确定如何规范化 pdf 数据然后计算 cdf。
import numpy as np
from pylab import *
with open ("D:/input_file.txt", "r+") as f:
data = f.readlines()
X = [int(line.strip()) for line in data]
Y = exp([-x**2 for x in X]) # is this correct?
# Normalize the data to a proper PDF
Y /= ... # not sure what to write here
# Compute the CDF
CY = ... # not sure what to write here
# Plot both
plot(X,Y)
plot(X,CY,'r--')
show()
我可以提出一个答案,您可以在其中使用 NumPy 确定概率密度函数 (PDF) 和累积分布函数 (CDF)。
import numpy as np
# -----------------
data = [88,93,184,91,107,170,88,107,167,90];
# -----------------
# get PDF:
ydata,xdata = np.histogram(data,bins=np.size(data),normed=True);
# ----------------
# get CDF:
cdf = np.cumsum(ydata*np.diff(xdata));
# -----------------
print 'Sum:',np.sum(ydata*np.diff(xdata))
我正在使用 Numpy 方法直方图,它将给我 PDF,然后我将从 PDF 计算 CDF。
我需要绘制从文件中读取的整数值的 cdf。我正在按照示例 here 进行操作。我不确定如何规范化 pdf 数据然后计算 cdf。
import numpy as np
from pylab import *
with open ("D:/input_file.txt", "r+") as f:
data = f.readlines()
X = [int(line.strip()) for line in data]
Y = exp([-x**2 for x in X]) # is this correct?
# Normalize the data to a proper PDF
Y /= ... # not sure what to write here
# Compute the CDF
CY = ... # not sure what to write here
# Plot both
plot(X,Y)
plot(X,CY,'r--')
show()
我可以提出一个答案,您可以在其中使用 NumPy 确定概率密度函数 (PDF) 和累积分布函数 (CDF)。
import numpy as np
# -----------------
data = [88,93,184,91,107,170,88,107,167,90];
# -----------------
# get PDF:
ydata,xdata = np.histogram(data,bins=np.size(data),normed=True);
# ----------------
# get CDF:
cdf = np.cumsum(ydata*np.diff(xdata));
# -----------------
print 'Sum:',np.sum(ydata*np.diff(xdata))
我正在使用 Numpy 方法直方图,它将给我 PDF,然后我将从 PDF 计算 CDF。