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
の仕様変更によるものです。コードを少し修正するだけで解決できるので、ぜひ試してみてください。
同じようなエラーに困っている方の参考になれば幸いです!