使用Matplotlib绘制直方图报错:'Rectangle' object has no property 'normed'
解决Matplotlib直方图报错:AttributeError: 'Rectangle' object has no property 'normed'
问题原因
normed=True是Matplotlib旧版本的参数,在3.1.0及之后的版本中已被弃用并移除,取而代之的是density=True参数,用于实现相同的归一化直方图功能。另外你的代码还缺少poisson模块的导入,这也会导致后续运行报错。
修复后的完整代码
import pandas as pd import numpy as np import matplotlib.pyplot as plt from scipy.stats import poisson # 补上缺失的poisson导入 epl_1617 = pd.read_csv("https://www.football-data.co.uk/mmz4281/1617/E0.csv") epl_1617 = epl_1617[['HomeTeam','AwayTeam','FTHG','FTAG']] epl_1617 = epl_1617.rename(columns={'FTHG': 'HomeGoals', 'FTAG': 'AwayGoals'}) # 计算泊松预测值 poisson_pred = np.column_stack([[poisson.pmf(i, epl_1617.mean()[j]) for i in range(8)] for j in range(2)]) # 替换normed为density plt.hist(epl_1617[['HomeGoals', 'AwayGoals']].values, range(9), alpha=0.7, label=['Home', 'Away'], density=True, color=["#FFA07A", "#20B2AA"]) plt.legend() # 添加图例显示标签 plt.show() # 显示图像
关键修改点
- 将
normed=True改为density=True,这是新版Matplotlib的标准参数 - 添加
from scipy.stats import poisson导入语句,解决poisson未定义的问题 - 补充
plt.legend()和plt.show(),确保图例和图像正常显示
内容的提问来源于stack exchange,提问作者shantanuo
相关产品推荐
相关产品推荐

