📊

データ分析 python 基本のグラフ -ヒストグラム-

2024/09/06に公開

データ分析で使用するグラフを簡単にまとめていきます
python + google colaboratory で 実行しています

ヒストグラムとは

連続する数値データの分布を視覚化します。
例)
20人の年齢データがあるとします。
ビンの個数を5個に設定(=データを5コの範囲に分割する)し、データがどこに分布しているかをグラフで表示します。

import pandas as pd
data = {'Age': [15, 25, 29, 31, 33, 35, 38, 40, 42, 45, 47, 50, 52, 55, 60, 65, 70]}
df = pd.DataFrame(data)
df['Age'].plot.hist(bins=5)

いろいろな方法でヒストグラムを表示してみる

使用したデータ

使用したデータ
import pandas as pd
df = pd.read_csv('/content/drive/MyDrive/webshop_review_data.csv')
df

データの項目名

  1. お客様の性別
  2. お客様の年齢
  3. 購入タイプ
  4. 購入目的
  5. サイトの使いやすさ評価
  6. 配送の利便性評価
  7. 注文のしやすさ評価
  8. サイトのナビゲーション評価
  9. 商品の品質評価
  10. ショッピング体験の快適さ評価
  11. カスタマーサポートの評価
  12. サービス全般の評価
  13. 商品の梱包状態評価
  14. 総合満足度

pandas を使ってヒスとグラムを表示する

pandasのデータフレームのメソッド hist を使って、ヒストグラムを作成します。
pandas が 内部で matplotlib を使用しているため、明示的に matplotlib を import する必要がありません。

df['総合満足度'].hist(bins=10)

Matplotlib を使ってヒストグラムを表示する

グラフに日本語ラベルを表示できるようにするため japanize_matplotlib をインストールします

!pip install -q japanize_matplotlib
import matplotlib.pyplot as plt
import japanize_matplotlib

plt.hist(df['総合満足度'], bins = 10)

plt.title('総合満足度ヒストグラム')
plt.xlabel('総合満足度')
plt.ylabel('頻度')

seaborn を使ってヒストグラムを表示する

import seaborn as sns

sns.histplot(df['総合満足度'], bins=10)

ちなみに Seaborn 0.11.0 以降では sns.distplot() は非推奨となっているため、代わりに sns.histplot() の使用が推奨されています。

seaborn を使ってヒストグラムと分布図を同時に表示する

histplot の引数 kde に Trueを指定すると、カーネル密度推定(Kernel Density Estimate, KDE) が追加されます。
KDEはデータの分布を滑らかな曲線で表し、ヒストグラムの各ビンがどのようにデータ全体の分布に対応するかを視覚的に表示します。

import seaborn as sns

sns.histplot(df['総合満足度'], bins=10, kde=True)

Discussion