Python3.6.5运行plt.hist报错too many values to unpack如何解决
报错原因
该报错由当前Python3.6环境下安装的matplotlib/numpy版本与书籍编写时的依赖版本不匹配导致,plt.hist()的内部参数解析逻辑、返回值结构发生了变动,触发参数解包失败错误。
解决方案
方案1:匹配书籍依赖版本(最稳妥,完全适配书中所有示例)
直接安装书籍编写时使用的官方依赖组合即可,无需修改原有代码:
- 先卸载当前环境中已安装的冲突版本
pip uninstall numpy matplotlib -y
- 安装适配版本
pip install numpy==1.16.6 matplotlib==2.2.3
安装完成后重新运行原有代码即可正常生成直方图。
方案2:不修改现有依赖,调整代码写法
如果不想改动当前环境的依赖包,可调整plt.hist的传参逻辑,显式定义bins并接住所有返回值,避免解析冲突:
import numpy as np import matplotlib.pyplot as plt %matplotlib inline x = 20 * np.random.randn(10000) # 显式生成bins区间,删除range参数避免内部解析冲突,同时接住所有返回值 bins = np.linspace(-50, 50, 25) _, _, _ = plt.hist(x, bins=bins, histtype='stepfilled', align='mid', color='g', label='Données de test') plt.legend() plt.title('Histogramme avec remplissage') plt.show()
内容的提问来源于stack exchange,提问作者Lemisourd
相关产品推荐
相关产品推荐

