2016-01-13 3 views
2

Я создал сценарий для построения гистограммы NO2 против остатков температуры в кадре данных, называемом ночным.Застройте линейный график по гистограмме для остаточного графика в python

Гистограмма показывает нормальное распределение остатков от линии регрессии где-то еще в скрипте python.

Я изо всех сил, чтобы найти способ чертит колоколообразной кривой над гистограммой как в этом примере:

Plot Normal distribution with Matplotlib

Как я могу получить подобающее нормальное распределение для моей остаточной гистограмме?

plt.suptitle('NO2 and Temperature Residuals night-time', fontsize=20) 

WSx_rm = nighttime['Temperature']           
WSx_rm = sm.add_constant(WSx_rm) 
NO2_WS_RM_mod = sm.OLS(nighttime.NO2, WSx_rm, missing = 'drop').fit() 
NO2_WS_RM_mod_sr = (NO2_WS_RM_mod.resid/np.std(NO2_WS_RM_mod.resid)) 
#Histogram of residuals 
ax = plt.hist(NO2_WS_RM_mod.resid) 
plt.xlim(-40,50) 
plt.xlabel('Residuals') 
plt.show 

ответ

0

Может ли следующая работа для вас? (с использованием какого-либо адаптированного кода из указанной вами ссылки)

import scipy.stats as stats 

plt.suptitle('NO2 and Temperature Residuals night-time', fontsize=20) 

WSx_rm = nighttime['Temperature']           
WSx_rm = sm.add_constant(WSx_rm) 
NO2_WS_RM_mod = sm.OLS(nighttime.NO2, WSx_rm, missing = 'drop').fit() 
NO2_WS_RM_mod_sr = (NO2_WS_RM_mod.resid/np.std(NO2_WS_RM_mod.resid)) 
#Histogram of residuals 
ax = plt.hist(NO2_WS_RM_mod.resid) 
plt.xlim(-40,50) 
plt.xlabel('Residuals') 

# New Code: Draw fitted normal distribution 
residuals = sorted(NO2_WS_RM_mod.resid) # Just in case it isn't sorted 
normal_distribution = stats.norm.pdf(residuals, np.mean(residuals), np.std(residuals)) 
plt.plot(residuals, normal_distribution) 

plt.show