Python 如何将zipf曲线添加到单词频率的条形图中?

Python 如何将zipf曲线添加到单词频率的条形图中?,python,matplotlib,plot,bar-chart,zipf,Python,Matplotlib,Plot,Bar Chart,Zipf,我有一个元组计数列表,该项按计数的降序排序,即一个项在本文档中出现的次数,我按上述方式绘制数据。现在假设我想证明术语的分布违反了计算语言学中的Zipf定律,我能在不改变x轴的情况下将Zipf曲线f=c/秩添加到这个图中吗?如何?在内部,分类x轴编号为0,1,2,。。。。要在相同位置绘制曲线,请使用rangelenlst作为x值。由于Zipf定律从1开始计算其值,相应的y值可计算为Zipf.pmfp,α,其中p为1,2,3,。。。alpha是zipf参数。要与非标准化条形图对齐,需要将这些值乘以总

我有一个元组计数列表,该项按计数的降序排序,即一个项在本文档中出现的次数,我按上述方式绘制数据。现在假设我想证明术语的分布违反了计算语言学中的Zipf定律,我能在不改变x轴的情况下将Zipf曲线f=c/秩添加到这个图中吗?如何?

在内部,分类x轴编号为0,1,2,。。。。要在相同位置绘制曲线,请使用rangelenlst作为x值。由于Zipf定律从1开始计算其值,相应的y值可计算为Zipf.pmfp,α,其中p为1,2,3,。。。alpha是zipf参数。要与非标准化条形图对齐,需要将这些值乘以总数。可用于查找最合适的alpha

将matplotlib.pyplot作为plt导入 从scipy.stats导入zipf lst=[60462,'意大利',46755,'西班牙',10423,'希腊',10197,'葡萄牙',8737,'塞尔维亚',4105,'克罗地亚', 3281,“波斯尼亚和恩赫泽戈维纳”,2878,“阿尔巴尼亚”,2083年,“北塞浦路斯”,2079年,“斯洛文尼亚”, 628,'黑山',442,'马耳他',77,'安道尔',34,'圣马力诺',34,'直布罗陀',1,'罗马教廷'] plt.bar[值的键,输入lst],[值的键,输入lst],color='limegreen' α=1.37065874 总计=总和[p代表p,c代表lst] plt.plotrangelenlst,[zipf.pmfp,α*范围1中p的总计,lenlst+1],color='crimson',lw=3 小种群 plt.xticksrotation='vertical' plt.tight_布局 节目
@约翰,这只是把我的图的x轴变成了数字,对吗?
plt.figure()
plt.bar([key for val,key in lst], [val for val,key in lst])
plt.xlabel("Terms")
plt.ylabel("Counts")
plt.show()