前回のおさらいと今回のテーマ
こんにちは!前回は、Pythonのデータ可視化ライブラリMatplotlibを使って、基本的なグラフの作成方法について解説しました。Matplotlibを使うことで、折れ線グラフや棒グラフ、散布図など様々なグラフを作成し、データの傾向を視覚的に捉える方法を学びました。
今回は、Seabornというライブラリを使って、より美しく高度なデータ可視化を行う方法を学びます。Seabornは、Matplotlibの機能を基に、洗練されたスタイルのグラフを簡単に作成できるライブラリです。特に、データ分析や統計解析において役立つ機能が豊富に揃っており、視覚的に優れたグラフを簡単に作成できます。それでは、基本操作を見ていきましょう!
Seabornとは?
Seabornは、Pythonで使えるデータ可視化ライブラリで、特に統計データの視覚化に優れています。以下の特徴があります。
- 高品質なデフォルトスタイル: 美しいスタイルがデフォルトで設定されており、見栄えの良いグラフを簡単に作成可能。
- Pandasとの親和性: Pandasのデータフレームを直接使ってグラフを描画できるため、データの可視化が非常に効率的。
- 高度な可視化機能: 相関行列、ヒートマップ、カテゴリデータのプロットなど、統計データに特化した様々なグラフが用意されている。
Seabornのインストールと基本設定
Anaconda環境にはSeabornがインストールされていることが多いですが、手動でインストールしたい場合は以下のコマンドを使用します。
pip install seaborn
Seabornのインポート
Seabornはsnsというエイリアスでインポートするのが一般的です。
import seaborn as sns
import matplotlib.pyplot as plt
matplotlib.pyplotも合わせてインポートし、グラフの表示を補助します。
Seabornでの基本的なグラフ作成
1. 折れ線グラフ(lineplot)
Seabornを使って折れ線グラフを作成する方法を見ていきましょう。lineplotを使うと、簡単に線グラフを描画できます。
import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
# データの準備
x = np.linspace(0, 10, 100)
y = np.sin(x)
# データフレームに格納
data = pd.DataFrame({'x': x, 'y': y})
# 折れ線グラフの描画
sns.lineplot(x='x', y='y', data=data)
plt.title("Sine Wave Line Plot")
plt.show()
- sns.lineplot(): Seabornの関数で、データフレームから直接線グラフを作成します。
2. 散布図(scatterplot)
scatterplotを使って、2つの変数間の関係を示す散布図を描画します。
# サンプルデータの作成
tips = sns.load_dataset('tips') # Seabornのデータセットをロード
# 散布図の描画
sns.scatterplot(x='total_bill', y='tip', data=tips)
plt.title("Total Bill vs Tip Scatter Plot")
plt.show()
- sns.scatterplot(): Pandasのデータフレームから直接散布図を描画します。この例では、
tipsデータセットを使っています。
3. 棒グラフ(barplot)
カテゴリデータの比較には、barplotを使います。
# 棒グラフの描画
sns.barplot(x='day', y='total_bill', data=tips)
plt.title("Average Total Bill per Day")
plt.show()
- sns.barplot(): カテゴリごとの平均値や合計値を棒グラフとして表示します。
tipsデータセットのdayごとのtotal_billの平均を示しています。
4. ヒストグラム(histplot)
データの分布を視覚化するには、histplotが有効です。
# ヒストグラムの描画
sns.histplot(tips['total_bill'], bins=20, kde=True)
plt.title("Total Bill Histogram with KDE")
plt.show()
- sns.histplot(): ヒストグラムを描画します。
kde=Trueでカーネル密度推定(KDE)を追加し、データの分布を滑らかに視覚化します。
Seabornの高度な可視化機能
1. ペアプロット(pairplot)
複数の変数の関係性をまとめて視覚化するには、pairplotが便利です。
# ペアプロットの描画
sns.pairplot(tips)
plt.show()
- sns.pairplot(): データフレーム内の数値データをすべて組み合わせて散布図やヒストグラムを描画します。変数間の関係を簡単に確認できます。
2. ヒートマップ(heatmap)
相関行列や2次元データの可視化には、heatmapが役立ちます。
# 相関行列の作成
corr = tips.corr()
# ヒートマップの描画
sns.heatmap(corr, annot=True, cmap='coolwarm')
plt.title("Correlation Heatmap")
plt.show()
- sns.heatmap(): 数値データの相関行列をヒートマップとして表示します。
annot=Trueで各セルの値を表示し、cmapでカラーマップを設定します。
3. 箱ひげ図(boxplot)
データの分布や異常値を確認するには、boxplotが便利です。
# 箱ひげ図の描画
sns.boxplot(x='day', y='total_bill', data=tips)
plt.title("Boxplot of Total Bill by Day")
plt.show()
- sns.boxplot(): データの中央値、四分位範囲、外れ値を視覚的に示します。
dayごとのtotal_billの分布が確認できます。
4. カウントプロット(countplot)
カテゴリ変数の出現頻度を示すには、countplotが適しています。
# カウントプロットの描画
sns.countplot(x='day', data=tips)
plt.title("Count of Days")
plt.show()
- sns.countplot(): カテゴリごとの出現回数を棒グラフで表示します。特定のカテゴリのデータ数を簡単に確認できます。
Seabornのカスタマイズ
1. スタイルの変更
Seabornでは、set_styleを使ってグラフのスタイルを変更できます。
# スタイルの設定
sns.set_style('whitegrid')
# 棒グラフの描画
sns.barplot(x='day', y='total_bill', data=tips)
plt.title("Styled Bar Plot")
plt.show()
- sns.set_style(): グラフ全体のスタイルを変更します。
whitegrid、darkgrid、whiteなどのオプションがあります。
2. パレットの設定
色を使ってデータを区別する際は、カラーパレットを設定することで、より視覚的に魅力的なグラフを作成できます。
# パレットの設定
sns.set_palette('pastel')
# 棒グラフの描画
sns.barplot(x='day', y='total_bill', hue='sex', data=tips)
plt.title("Bar Plot with Pastel Palette")
plt.show()
- sns.set_palette(): グラフに使用するカラーパレットを指定します。
pastelやdeepなど、Seabornには様々なカラーパレットが用意されています。
まとめ
今回は、Seabornを使った高度
なデータ可視化方法について学びました。Seabornを使うことで、データの分布や関係性を視覚的に理解しやすくなり、見やすく美しいグラフが簡単に作成できます。基本的なグラフから相関行列やヒートマップ、箱ひげ図など、統計解析に特化した可視化まで、多くのツールを活用してデータを深く掘り下げることができるでしょう。
次回予告
次回は、Scikit-learnを使った機械学習の基本について解説します。データの読み込みや前処理、基本的なモデルの構築方法を学び、AI開発の第一歩を踏み出しましょう!
注釈
- ペアプロット: データセット内の変数を組み合わせて、関係性や分布を一度に可視化する手法。
- ヒートマップ: 相関行列や2次元データを色で視覚化するグラフ。

コメント