【发布时间】:2018-05-09 12:47:33
【问题描述】:
我正在尝试绘制出版物正态分布的 3 个数字,但我只得到一个好的数字(英国)。其余两个(美国和日本)的正态曲线不完整。
我将曲线拟合到直方图,因此您可以说每个图需要包含两个图,即直方图和高斯分布。
请查看我的部分代码并告诉我如何解决此问题。 我非常愿意接受建议,谢谢。
我的 Matplotlib 数据:fitted distribution、fitted distribution、fitted distribution
for item in totalIPs:
USA=totalIPs[18]
JAPAN=totalIPs[10]
UK=totalIPs[17]
AUSTRALIA=totalIPs[0]
#print(USA)
#print(JAPAN)
#print(UK)
#print(AUSTRALIA)
#print('done')
#print(country)
#print(ipFirmnames)
#print(totalIPs)
#print("done")
#Calculating mean and standard deviation
#from sublists in country list of lists
#i could write a function for this but dont know how
mu_USA=statistics.mean(USA)
mu_JAPAN=statistics.mean(JAPAN)
mu_UK=statistics.mean(UK)
std_USA=statistics.stdev(USA)
std_JAPAN=statistics.stdev(JAPAN)
std_UK=statistics.stdev(UK)
plt.figure(1)
plt.hist(USA, bins=10, normed=True, alpha=0.6, color='g')
plt.figure(2)
plt.hist(JAPAN,bins=10,normed=True,alpha=0.6, color ='g')
plt.figure(3)
plt.hist(UK, bins=10,normed=True, alpha=0.6, color = 'g')
standardize_USA=(np.array(USA)-mu_USA)/std_USA
standardize_JAPAN=(np.array(JAPAN)-mu_JAPAN)/std_JAPAN
standardize_UK=(np.array(UK)-mu_UK)/std_UK
xmin, xmax = plt.xlim()
x1=np.linspace(xmin, xmax, 100)
x2=np.linspace(xmin, xmax, 100)
x3=np.linspace(xmin, xmax, 100)
fitted_pdf_USA=ss.norm.pdf(x1,mu_USA, std_USA)
fitted_pdf_JAPAN=ss.norm.pdf(x3,mu_JAPAN, std_JAPAN)
fitted_pdf_UK=ss.norm.pdf(x3,mu_UK, std_UK)
plt.figure(1)
plt.plot(x1, fitted_pdf_USA, 'K', linewidth=2)
plt.figure(2)
plt.plot(x2, fitted_pdf_JAPAN,'K', linewidth=2)
fitted_pdf_JAPAN=ss.norm.pdf(x2,mu_JAPAN, std_JAPAN)
plt.figure(3)
plt.plot(x3, fitted_pdf_UK,'K', linewidth=2)
#plt.show()
print(standardize_USA)
print(standardize_JAPAN)
#print(USA)
print(UK)
print(JAPAN)
【问题讨论】:
-
我这边的第一个也是迄今为止唯一的建议:提供您需要帮助的问题的minimal reproducible example。
-
感谢您的建议。我是 Python 和 Stackoverflow 的新手,所以我不熟悉约定。下次我会记住这一点。顺便问一下,我的情节有什么问题吗?
-
很难理解您希望我们做什么,即使您确实需要帮助并且我们应该提供帮助。 PyMC 有一些示例代码可以帮助您入门;使用已知框架和分步记事本可以极大地帮助我们。
标签: python matplotlib plot scipy statistics