Pythonでデータの可視化をする際、以下のようなエラーに遭遇しました。
AttributeError: Rectangle.set() got an unexpected keyword argument 'normed'
この記事では、このエラーの原因と解決方法をまとめました。
エラーの原因
matplotlibでは、バージョン2.1以降、ヒストグラムを作成する際の引数normedが廃止されました。その代わりに、densityという新しい引数が導入されています。
そのため、古いコードでnormed=Trueを指定している場合、このエラーが発生します。
修正方法
normedをdensityに置き換えるだけで解決しました。
修正前のコード
import matplotlib.pyplot as plt
data = [1, 2, 2, 3, 3, 3, 4, 4, 4, 4]
plt.hist(data, bins=5, normed=True) # 古いコード
plt.show()
修正後のコード
import matplotlib.pyplot as plt
data = [1, 2, 2, 3, 3, 3, 4, 4, 4, 4]
plt.hist(data, bins=5, density=True) # 修正版
plt.show()
バージョン確認方法
自分のmatplotlibのバージョンを確認したい場合は、以下のコードを実行してください。
import matplotlib
print(matplotlib.__version__)
もし古いバージョンを使っている場合は、以下のコマンドでアップデートすることをおすすめします。
pip install --upgrade matplotlib
まとめ
このエラーは、matplotlibの仕様変更によるものです。コードを少し修正するだけで解決できるので、ぜひ試してみてください。
同じようなエラーに困っている方の参考になれば幸いです!