python密度函数曲线_python – 用matplotlib样本绘制概率密度函数

我想绘制基于概率密度函数的近似值

我有一个样本;模拟直方图行为的曲线.我可以

有我想要的样本.

解决方法:

如果要绘制分布,并且知道它,请将其定义为函数,并将其绘制为:

import numpy as np

from matplotlib import pyplot as plt

def my_dist(x):

return np.exp(-x ** 2)

x = np.arange(-100, 100)

p = my_dist(x)

plt.plot(x, p)

plt.show()

如果您没有确切的分布作为分析函数,也许您可​​以生成一个大样本,采用直方图并以某种方式平滑数据:

import numpy as np

from scipy.interpolate import UnivariateSpline

from matplotlib import pyplot as plt

N = 1000

n = N//10

s = np.random.normal(size=N) # generate your data sample with N elements

p, x = np.histogram(s, bins=n) # bin it into n = N//10 bins

x = x[:-1] + (x[1] - x[0])/2 # convert bin edges to centers

f = UnivariateSpline(x, p, s=n)

plt.plot(x, f(x))

plt.show()

您可以在UnivariateSpline函数调用中增加或减少s(平滑因子)以增加或减少平滑.例如,使用这两个:

标签:python,matplotlib,histogram,probability

你可能感兴趣的:(python密度函数曲线)