2015-10-24 3 views
3

Я хотел бы добавить график плотности к моей диаграмме гистограмм. Я знаю что-то о функции PDF, но я запутался, и другие подобные вопросы не помогли.Добавить KDE на гистограмму

from scipy.stats import * 
from numpy import* 
from matplotlib.pyplot import* 
from random import* 

nums = [] 
N = 100 
for i in range(N): 
    a = randint(0,9) 
    nums.append(a) 

bars= [0,1,2,3,4,5,6,7,8,9] 
alpha, loc, beta=5, 100, 22 

hist(nums,normed= True,bins = bars) 


show() 

Я ищу что-то вроде этого

enter image description here

+3

Вы могли бы быть заинтересованы в Сиборн в [ '' kdeplot''] (https: // Стэнфорд .edu/~ mwaskom/software/seaborn/generated/seaborn.kdeplot.html) функция. – jakevdp

ответ

3
from scipy import stats 
import numpy as np 
import matplotlib.pyplot as plt 
np.random.seed(41) 

N = 100 
x = np.random.randint(0, 9, N) 
bins = np.arange(10) 

kde = stats.gaussian_kde(x) 
xx = np.linspace(0, 9, 1000) 
plt, ax = plt.subplots(figsize=(8,6)) 
ax.hist(x, normed=True, bins=bins, alpha=0.3) 
ax.plot(xx, kde(xx)) 

plot

+0

Не должно быть ax.plot (xx, kde) вместо последней строки? – ErroriSalvo

+0

@ErroriSalvo, подумайте о 'kde' как о встроенной функции. В последней строке мы оцениваем 'kde' во всех позициях в массиве' xx'. Это похоже на построение квадратичной функции: 'plot (x, lambda x: x ** 2)' – cel

+0

жаль, что вы совершенно правы – ErroriSalvo

Смежные вопросы