如何通过matplotlib和scipy显示pmf的峰值?

问题描述

这是代码(我想知道图片的峰值,但是我不知道如何添加此类代码

import matplotlib.pyplot as plt
import  matplotlib as mpl
import numpy as np
from scipy import stats
n=25
p=0.6    
k=np.arange(0,50)    
#the pmf forming    
picture=stats.binom.pmf(k,n,p)    
print(picture)    
mpl.rcParams['font.sans-serif'] = [u'SimHei']  
mpl.rcParams['axes.unicode_minus'] = False    
mean,var,skew,kurt=stats.binom.stats(n,p,moments='mvsk')   
print(mean,kurt)    
#the picture forming    
plt.plot(k,picture,'o-')    
plt.grid(True)    
plt.show()

解决方法

您可以使用scatter

import matplotlib.pyplot as plt
import  matplotlib as mpl
import numpy as np
from scipy import stats
n=25
p=0.6    
k=np.arange(0,50)    
#the pmf forming    
picture=stats.binom.pmf(k,n,p)    

mpl.rcParams['font.sans-serif'] = [u'SimHei']  
mpl.rcParams['axes.unicode_minus'] = False    
mean,var,skew,kurt=stats.binom.stats(n,p,moments='mvsk')   
print(mean,kurt)    
#the picture forming    

plt.plot(k,picture,'o-')    
plt.grid(True)    

# the two new lines 
max_ind = np.argmax(picture)
plt.scatter(x=k[max_ind],y=picture[max_ind],c='r',s=100,zorder=10)

这会产生

plot