わたねこコーリング

野良プログラマ発、日々のアウトプット

【matplotlib】 boxplot() で whis='range' が使えなくなった件

jupyter (matplotlib は 3.5.3)でデータ集計をしていて、久々に箱ひげ図を作ろうとしたら表題件に気づきました。

この作業ではデータの性格上、外れ値は考慮しなくて良いので、

plt.boxplot(datas, whis='range')

としたら、こんなエラーが。

ValueError: whis must be a float or list of percentiles

はて、以前はこれで良かったのに…と調べたら、matplotlib 3.2.0 (2020.3.4 リリース)から仕様が変わったみたいです。

https://matplotlib.org/3.1.3/api/_as_gen/matplotlib.pyplot.boxplot.html
https://matplotlib.org/3.2.0/api/_as_gen/matplotlib.pyplot.boxplot.html

で、どうすれば良いか言えば、上記ドキュメントに

浮動小数点数のペアの場合、ひげを描画するパーセンタイルを示します (例: (5, 95))。 特に、これを (0, 100) に設定すると、ひげがデータの全範囲をカバーします。

とあるので、

plt.boxplot(datas, whis=(0, 100))

でオケーイ。