谢邀!
1.因为你画图的数据点没有排序,plot在画图时是按照数据点出现的顺序来画的,而不是按照数据点实际对应的坐标的前后顺序来画的。一个简单的办法就是先把t进行排序处理:ts=np.sort(t),然后用ts代入stats.norm.pdf()去画图。不过如果对100万个点直接排序有点费时了,一个简单的做法就是你从这100个点里随机抽取1000个来替代原有数据。
不过需要指出你的一个理解错误,plt.plot(t,stats.norm.pdf(t),...)其实并不是在用正态分布进行拟合。。。如果真的是用正态分布进行拟合了,你就应该可以得到这个正态分布的两个参数了:平均值和方差。有了平均值和方差,就直接得到拟合后的正态分布的概率密度分布函数了,这样直接在-8,+8之间均匀取100个点,并得到这些点处的概率密度,然后再画图。
均匀取点可以这么干:x=np.linspace(-8,8,100)
2.没看明白你这里说的“极值分布”的含义是什么。。。