ヒストグラム

Python の Matplotlib のデフォルトのヒストグラムは,かっこわるい。

import matplotlib.pyplot as plt
import numpy as np

rng = np.random.default_rng(12345)
x = rng.random(1000)
plt.hist(x)
ヒストグラム1

R 風に描くには,次のようにする:

plt.hist(x, color="lightgray", edgecolor="black")
ヒストグラム2

seaborn の darkgrid 風に描くには,次のようにする(seaborn がインストールされていれば import しなくてもよい):

plt.style.use("seaborn-darkgrid")
plt.hist(x)

やや不完全なので,seaborn を import してやってみる:

import seaborn as sns

sns.set_style("darkgrid")
plt.hist(x)
ヒストグラム3

オプション density=True で縦軸が個数でなく密度になる。orientation='horizontal' で横向きになる。

例えば bins=50 で,だいたい50分割になる。また,例えば bins=[0,1,2,3,4] のように分割点を指定できる。この場合,区間は左閉区間 [0,1),[1,2),[2,3),[3,4] になる。一番右が閉区間となるのに注意。左が閉じた区間になるのは,R のデフォルトとは逆で,R ではオプション right=FALSE を付けると plt.hist() と同じになる。ちなみに Excel の「グラフ」メニューに加わった「ヒストグラム」も左開区間にしかできないようで,悩ましい。

なお,seaborn だけでも sns.histplot(x) できる。区切り方が plt.hist(x) と少し違う。


Last modified: