Seabornのhistplot
は、ヒストグラムを作成するための関数です。ヒストグラムでは、データが区切られた範囲(ビン)にどの程度分布しているかを棒グラフで示します。
histplotの使い方
histplotでは次のような簡単なコードの記述により、洗練されたヒストグラムを作ることができます。
import seaborn as sns
import numpy as np
sns.set_theme()
# ランダムなデータセットを生成
data = np.random.normal(size=1000)
# ヒストグラムを描画
sns.histplot(data, bins=30, kde=True, color='blue')
histplotに渡す引数により、カスタマイズされたヒストグラムの生成ができます。例えば以下のようなものです。
- データの指定:
data
でデータセットを、x
やy
で軸上の変数を選びます。 - 色分け:
hue
で異なるデータ群を色分けして表示できます。 - ビンの調整:
bins
、binwidth
、binrange
でビンの数や幅、範囲をカスタマイズ可能です。 - 統計の表示:
stat
でビン内のデータを数、頻度、確率など様々な統計量で表示できます。 - カーネル密度推定:
kde
をTrueにすると、滑らかな曲線で分布を示すことができます。
histplotによるさまざまなヒストグラムの作成
ここからは、Seabornが用意しているペンギンの羽の長さに関するデータセットを用いて、さまざまなヒストグラムのカスタマイズを行なってみます。
基本的なヒストグラムの描画
最初に、ペンギンのフリッパーの長さ(flipper_length_mm
)の分布を描画してみましょう。
import seaborn as sns
import matplotlib.pyplot as plt
sns.set_theme()
# データセットの読み込み
penguins = sns.load_dataset("penguins")
# フリッパーの長さの分布を描画
sns.histplot(data=penguins, x="flipper_length_mm")
ヒストグラムの向きを変更
データ変数をy
軸に割り当てることで、ヒストグラムの向きを変更できます。
sns.histplot(data=penguins, y="flipper_length_mm")
plt.show()
ビンの幅を変更
ビンの幅(binwidth
)を指定することで、横軸の範囲を細かくしてヒストグラムを描画することができます。
sns.histplot(data=penguins, x="flipper_length_mm", binwidth=3)
ビンの数を指定
全体のビンの数(bins
)を指定することもできます。
sns.histplot(data=penguins, x="flipper_length_mm", bins=30)
カーネル密度推定の追加
ヒストグラムにカーネル密度推定(kde=True
)を追加して、分布の形状について補助的な情報を提供します。
sns.histplot(data=penguins, x="flipper_length_mm", kde=True)
種別ごとの分布の比較
hue
パラメータを使用して、ペンギンの種別(species
)ごとに色分けしたヒストグラムを描画します。
sns.histplot(data=penguins, x="flipper_length_mm", hue="species")
分布の積み重ね
複数の分布を積み重ね(multiple="stack"
)て表示することができます。
sns.histplot(data=penguins, x="flipper_length_mm", hue="species", multiple="stack")
ステップ関数の描画
棒グラフではなく、ステップ関数(element="step"
)を描画して分布を比較します。
sns.histplot(penguins, x="flipper_length_mm", hue="species", element="step")
対数スケールでの描画
実際のデータはしばしば歪んでいます。歪んだ分布に対しては、ビンを対数スケール(log_scale=True
)で定義すると良いでしょう。
# データセットの読み込み
planets = sns.load_dataset("planets")
# 対数スケールでのヒストグラム描画
sns.histplot(data=planets, x="distance", log_scale=True)
まとめ
seabornを用いてさまざまなヒストグラム(histplot)の作り方を見てきました。データの分析やプレゼンテーションに役立てていただけると幸いです。