statsmodels中GLM模型summary()导出为.png报错:print_fn参数不识别
解决statsmodels GLM摘要导出为PNG的print_fn参数错误
statsmodels的GLMResults.summary()方法确实不支持print_fn参数,它返回的是Summary对象,我们可以直接通过内置方法或字符串转换获取摘要文本,无需借助print_fn。
修正后的完整代码
import matplotlib.pyplot as plt import statsmodels.formula.api as smf import statsmodels.api as sm # 原模型训练代码 fitGlm = smf.glm(listOfInModelFeatures, family=sm.families.Binomial(), data=train, freq_weights=train['sampleWeight']).fit() # 导出为PNG的修正代码 fig, ax = plt.subplots(figsize=(16, 8)) # 直接获取摘要的文本格式内容 summary_str = fitGlm.summary().as_text() # 也可以用 str(fitGlm.summary()) 达到同样效果 ax.text(0.01, 0.05, summary_str, fontfamily='monospace', fontsize=12) ax.axis('off') plt.tight_layout() plt.savefig('output.png', dpi=300, bbox_inches='tight')
说明
fitGlm.summary().as_text()是Summary对象提供的明确获取文本摘要的方法,返回内容和print(fitGlm.summary())输出完全一致- 用
str(fitGlm.summary())也能得到相同文本,因为Summary类实现了__str__魔法方法 - 后续绘图逻辑无需修改,仅需替换摘要文本的获取方式即可
内容的提问来源于stack exchange,提问作者Giampaolo Levorato
相关产品推荐
相关产品推荐

