matplotlibでヒストグラムを書く時、次のように、hist()を使います。(リンク先は公式ドキュメント)
import matplotlib.pyplot as plt
import numpy as np
data = np.random.randn(100) * 10
fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)
ax.hist(data)
plt.show()
ついこの間まで知らなかったのですが、ドキュメントによると、ax.hist(data)
は戻り値を返しています。
戻されるのは、各区間の度数と、区間の区切り位置、描写に使われているmatplotlibのオブジェクトの3つです。
これらのうち、度数と区切り位置を取れるのは可視化とその他の集計を整合性を保ちながら行うのに便利そうです。
とりあえず、戻り値を受け取れるようにしてもう一回やってみましょう。
(図は今回省略します。)
import matplotlib.pyplot as plt
import numpy as np
data = np.random.randn(100) * 10
fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)
n, bins, patches = ax.hist(data)
plt.show()
print(n)
print(bins)
print(patches)
# 以下出力 (図は略)
[ 1. 5. 6. 18. 14. 16. 21. 13. 4. 2.]
[-29.53118806 -24.17059351 -18.80999896 -13.44940441 -8.08880985
-2.7282153 2.63237925 7.9929738 13.35356835 18.7141629
24.07475745]
ビンの数は今回何も指定していないので、デフォルトの10個です。
そのため、度数の配列nには10個の要素が含まれ、
区切り位置binsは右端左端が両方入っているので、11この要素を持つ配列になっています。