我运行此代码。
fig = plt.figure(figsize=(12,15))
ax1 = fig.add_subplot(211)
prob = sp.stats.probplot(var, dist=sp.stats.norm, plot=ax1)
ax1.set_xlabel('')
ax1.set_title('Probplot against normal distribution')
它完全正常,我把它作为输出。
但是,当我尝试运行box_cox_normality图时,它没有生成任何图形
fig = plt.figure()
ax = fig.add_subplot(111)
lamdas,ppc=sp.stats.boxcox_normplot(var, -20, 20, plot=ax)
我明白了。
我不确定为什么它不是密谋。我正在使用ipython matplotlib内联,所以不需要做plt.show()
建议请
修改
我不确定问题是否存在于数据中。问题是除非我这样做 plt.plot(arg)明确表示它不是绘图。
这是一个例子。请注意,此变量中没有缺失值,因为已经处理过。
以下是代码:
fig = plt.figure(figsize=(15,8))
ax = fig.add_subplot(111)
lamdas,ppc=sp.stats.boxcox_normplot(var, -20, 20, plot=ax)
#plt.plot(lamdas,ppc)
max_ppc=lamdas[ppc.argsort()[::-1][0]]
ax.axvline(lamdas[ppc.argsort()[::-1][0]],color='b')
y, lmax_mle = sp.stats.boxcox(var)
lmax_pearsonr = sp.stats.boxcox_normmax(var)
ax.axvline(lmax_mle, color='r')
ax.axvline(lmax_pearsonr, color='g', ls='--')
print max_ppc,lmax_mle,lmax_pearsonr
boxcox规范图应该独立工作,因为它需要plot = ax参数。但是它给出了下面的图,它显然没有打印出boxcox图。检查plt.plot()是否已注释掉。
现在我使用plt.plot()语句运行相同的代码取消注释。
如您所见,绘制完整的情节。所以某些地方出了问题,现在它需要明确的plt.plot语句来绘制。 BoxCox正在进行正确的转型。早些时候我没有看到这样的问题