matplotlib不支持将生成器作为输入
问题内容:
我正在此站点上运行笔记本https://github.com/vsmolyakov/experiments_with_python/blob/master/chp01/ensemble_methods.ipynb
以python练习集成方法,并且在python 3中运行此部分代码时出错:
plt.figure()
(_, caps, _) = plt.errorbar(num_est, bg_clf_cv_mean, yerr=bg_clf_cv_std, c='blue', fmt='-o', capsize=5)
for cap in caps:
cap.set_markeredgewidth(1)
plt.ylabel('Accuracy'); plt.xlabel('Ensemble Size'); plt.title('Bagging Tree Ensemble');
plt.show()
错误是“ matplotlib不支持将生成器作为输入”是什么解决方案?最好的祝福
问题答案:
在该示例中,有一行num_est = map(int, np.linspace(1,100,20))
。这会在python
2.7中产生一个列表。但是在python 3中它只是一个生成器。该地图还是很奇怪,所以我建议将其替换为
num_est = np.linspace(1,100,20).astype(int)