Pythonライブラリ講座

【Python】Seabornとは?ヒートマップを簡単に作成!

前のページ

21章ではPythonのデータ可視化ライブラリ『Seaborn』について解説します。

また、『seaborn.heatmap()』や『seaborn.pairplot()』の使い方も紹介します。

本記事を読めばSeabornとは何か、またその使用例を理解することができます。

ぜひ最後まで読んでいってください!

本連載講座【Python ライブラリ編】では、データサイエンスに必要なPythonライブラリやその使い方を基礎から学ぶことができます。

NumPyPandasMatplotlibScipySeabornについて、初学者の方にも分かりやすいよう丁寧に解説しています。

さらに、学習した内容を定着させられるように各章演習問題を用意しています。

・Pythonでデータ分析ができるようになりたい

・Pythonの基礎事項は一通り学んだので、さらに深く学びたい

このように考えている方はTech Teacherが運営する【Python ライブラリ編】で、Pythonによるデータサイエンスの学習をすることをお勧めします!

なお、『Pythonについて全く知らない』・『Pythonの基礎事項がまだ分かっていない』という方は、まずコチラの【Python 基礎編】で基礎を一通り学習してからライブラリ編に取り掛かりましょう!

<ライブラリ編 目次>

<ライブラリの基礎>
1章:ライブラリとは

<NumPy>
2章:NumPyの概要と配列(ndarray)
3章:統計量や次元の取得/ソート
4章:配列のインデックス
5章:numpy.whereによる条件制御
6章:配列の結合/分割
7章:乱数

<SciPy>
8章:SciPyの概要と基本操作

<Pandas>
9章:SeriesDataFrame/統計量の取得
10章:データの読み込み/書き込み
11章:データの取り出し/追加
12章:データのソート
13章:データの結合
14章:階層型インデックス
15章:groupbyによる集計
16章:マッピング処理
17章:欠損値の扱い

<Matplotlib>
18章:Matplotlibの概要
19章:pyplotインターフェース
20章:オブジェクト指向インターフェース

<Seaborn>
21章:Seabornの概要と基本操作

Seabornとは

Seaborn ロゴ

Seaborn』はPythonのデータ可視化ライブラリの1つで、Matplotlibを基に作られています。

一般にMatplotlibを補完する形で使われることが多く、Matplotlibの一部の機能をSeabornと組み合わせて使用することができます。

このライブラリを用いることで、Matplotlibで作成したグラフをさらにきれいにすることができます。

また、ヒートマップ散布図行列などを簡単に作成することもできます。

本記事ではSeabornの活用例としてヒートマップ・散布図行列の作成方法について解説します。

Seabornの使用例

Seabornのインポート

まずはSeabornをインポートしましょう。

一般的に「sns」という名前を付けてインポートすることが多いです。

本記事ではNumPyMatplotlibPandasも使用するので、これらのライブラリもインポートしておきましょう。

import numpy as np
import pandas as pd
import matplotlib as mpl
import matplotlib.pyplot as plt
import seaborn as sns

なお、ライブラリのインポートについては以下の記事で詳しく解説しています。

「ライブラリって何?」「インポートって何?」という疑問のお持ちの方は、ぜひ参照してください!

seaborn.heatmap():ヒートマップ

seaborn.heatmap()』を用いると、ヒートマップを作成することができます。

ヒートマップ』とは、2次元データの値を色で表した図のことです。

以下の例では、ランダムに作成した10×10の2次元配列をヒートマップで可視化しています。

#データ
data = np.random.rand(10, 10)

#ヒートマップの作成
sns.heatmap(data)
plt.show()
ヒートマップ

この例で用いた「numpy.random.rand()」は0から1までの一様分布から値を取得する関数です。

NumPyの乱数については以下の記事で網羅的に解説していますので、ぜひ参照してください。

引数annot:数値を表示

引数annotTrueとすると、各ピクセルに数値を表示することができます。

#データ
data = np.random.rand(4, 4)

#ヒートマップの作成
sns.heatmap(data, annot=True)
plt.show()
数値付きヒートマップ

引数cmap:色を変更

引数cmapを用いると、ヒートマップの色合いを変更することができます。

以下の例では「cmap=’Blues’」として青系の色合いに変更しています。

#データ
data = np.random.rand(4, 4)

#引数cmapで色合いを変更
sns.heatmap(data, cmap='Blues')
plt.show()
青系の色合いにしたヒートマップ

この他にもさまざまな色合いを選ぶことができます。

ぜひ手を動かしながら試してみてください。

seaborn.pairplot():散布図行列

seaborn.pairplot()』を用いると、データの散布図行列を作成することができます。

散布図行列』とは、データのすべての組に対する散布図を並べたものです。

さまざまな組のデータの関係を一度に可視化することができ、データの大まかな関係を把握するのに便利です。

以下の例では、4つのデータのすべての組に対して散布図またはヒストグラムを表示しています。

#データ
data = pd.DataFrame({
    'A': np.random.randn(100),
    'B': np.random.randn(100),
    'C': np.random.randn(100),
    'D': np.random.randn(100)
})

# 散布図行列の作成
sns.pairplot(data)
plt.show()

散布図行列

データ数が多いと表示に時間がかかるので注意しましょう。

まとめ

いかがだったでしょうか。

本記事ではPythonのデータ可視化ライブラリである『Seaborn』の概要と、その使用例について解説しました。

Seabornを用いるとデータをより見やすくすることができます。

今回紹介しきれなかった関数や引数についても、ご自分で調べながら試してみて下さい!