Python

【15分で習得】seabornの使い方を徹底解説

【15分で習得】seabornの使い方を徹底解説

 

Yuma
Yuma
 

  • seabornで誰でもかっこいいグラフが描ける方法を教えます。
  • この記事は15分程度で読み終わります。

 

本記事の内容

  1. seabornの基本と導入
  2. Seabornの基本的な使用方法
  3. Seabornで棒グラフ

 

seabornの基本と導入

searbonは、簡単にいうとmatplotlibを更に簡単にかっこよくプロットできるライブラリです。

描画方法は、ほとんんどmatplotlibと変わらないので、matplotlibの基本がわかっている方は、簡単に使いこなすことができます。

matplotlibの基本が怪しい方は、下記を参考にしてください。

【15分】Pythonでグラフを作成する方法|matplotlibの基本をマスターPythonでグラフを書くことが難しそうだと思っていませんか?実は、Pythonを使用したグラフ作成は、excelより便利で簡単です。この記事では、初心者でもグラフが書けるように丁寧にpythonのグラフの作成法を説明します。...

Google Colabratoryを使用している方は、デフォルトでseabornをインポートすることが可能ですが、Jupyter notebookを使用している方は、インストールが必要です。

下記を入力して、インストールしてください。

pip install seaborn

 

必要なライブラリをインストール

 

seabornでグラフを描画するために必要なライブラリをインストールしていきましょう。

# 使用するライブラリをインストール
import seaborn as sns
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline

 

基本的には、上記の3つのライブラリ(numpy, pandas, matplotlib)についての前提知識があると良いです。

もし、基本があまりにも抜けている方は、下記を参考にして簡単に復習してください。

 

グラフを描画するサンプルデータをインポートする

 

Kaggle等でお馴染みのtitanicデータセットを読み込むことができます。

以下のコードを実行すると、titanicデータセットを読み込むことができます。

titanic = sns.load_dataset('titanic')

 

どのようなデータなのかを確認するために以下を実行してください。

titanic.head()

 

<出力>

サンプルデータ

このデータを具体例として、seabornで様々なグラフを描画していきます。

 

Seabornの基本的な使用方法

 

Seabornの基本的な使用方法を簡単に説明します。

基本的には、以下のようにコードを書くことでグラフを描画する事ができます。

sns.(グラフの描画手法)
plt.show()

 

sns.(〜)の〜部分には、グラフの描画手法が入ります。

これだけで、綺麗なグラフを作成することができます。

具体的なイメージがわかない方は、これから説明する具体例を使ってイメージを掴んでください!

また、スタイルを指定するための以下のコードを入力してください。

sns.set()

 

とりあえず今回は、おまじないだと思って最初に入力してください。

Seabornで棒グラフを描画

 

Seabornで棒グラフを描画するときは主に以下のメソッドを使用します。

  1. barplot : 横軸と縦軸の値を設定してグラフを描画する
  2. countplot : データの要素を個数を数えて描画する

 

barplotの具体例

 

barplotの具体例を表示します。

barplotの主な引数

  • x : 横軸の値
  • y : 縦軸の値
  • data : 使用するデータセット

 

<入力>

sns.barplot(x='survived', y ='age', data=titanic)
plt.show()

 

<出力>

 

countplotの具体例

 

countplotの具体例を表示します。

countplotの主な引数

  • x : 横軸の値
  • data : 使用するデータセット

 

<入力>

sns.countplot(x='pclass', data = titanic)
plt.show()

 

<出力>

countplotのsample

 

Seabornで棒グラフを描画

 

Seabornでヒストグラムを描画するときは主に以下のメソッドを使用します。

  1. distplot : ヒストグラムを表示する

 

distplotの具体例

 

distplotの具体例を表示します。

distplotの主な引数

  • a : Pandas Series, 一次元のndarray, 一次元のlist
  • kde : 確率密度関数の表示(Trueの場合表示する)
  • norm_hist : ヒストグラムの正規化(Trueの場合正規化する)

 

<入力>

sns.distplot(a = titanic['age'])
plt.show()

 

<出力>

displotのサンプル1

デフォルトでは、ヒストグラムの領域を1に正規化して確率分布の近似値を表示します。

このデフォルト変更したい場合は以下のように引数を設定します。

 

<入力>

sns.distplot(a = titanic['age'], kde=False, norm_hist=False)
plt.show()

 

<出力>

distplotのサンプル2

 

Seabornで散布図を描画

 

Seabornで散布図を描画する方法は主に以下の二つです。

  1. jointplot : 散布図を表示
  2. pairplot : 指定した値に対する散布図と棒グラフを一括表示

 

jointplotの具体例

 

jointplotの具体例を表示する。

joinplotの主な引数

  • x : 横軸の指定
  • y : 縦軸の指定
  • data : 使用するデータフレーム
  • alpha : 透明度

 

散布図を綺麗に表示するためにデータを少し変換します。

# データの範囲を制限
titanic = titanic[titanic['fare'] < 300]

 

この処理が良くわからない方は、下記を参考にしてください

pandas入門(データ分析に必要不可欠なものをまとめてみた)『pandasを使ってみたいけど何から手をつけて良いかわからない...』という方のために本記事を作成しました。本記事では、Pandasを利用したデータ解析に必要不可欠なものだけをまとめました。...

 

では、散布図を書いていきます。

<入力>

sns.jointplot(x='age', y='fare', data=titanic, alpha=0.3)
plt.show()

 

<出力>

jointplotのサンプル

 

pirplotの具体例

 

pirplotの具体例を表示します

pirplotの主な引数

data : データフレームを指定

 

<入力>

sns.pairplot(data = titanic[['age', 'fare']])
plt.show()

 

<出力>

pairplotのサンプル

 

Seabornで箱ひげ図を描画

 

Seabornで箱ひげ図を描画するときは主に以下のメソッドを使用します。

  1. boxplot : 通常の箱ひげ図
  2. violinplot : サンプルのヒストグラム付きの箱ひげ図
  3. swarmplot : vilolinplot以上に詳しい箱ひげ図

 

boxplotの具体例

 

boxplotの具体例を表示します。

boxplotの主な引数

  • x : 横軸の設定
  • y : 縦軸の設定
  • data : データフレームを指定

 

<入力>

sns.boxplot(x='survived', y='age', data=titanic)
plt.show()

 

<出力>

boxplotのサンプル

violinplotの具体例

 

violinplotの具体例を表示します

violinplotの主な引数

  • x : 横軸の指定
  • y : 縦軸の指定
  • data : データフレームの指定

 

<入力>

sns.violinplot(x='survived', y='age', data=titanic)
plt.show()

 

<出力>

violinplotのサンプル

 

swarmplotの具体例

 

swarmplotの具体例を表示します。

swarmplotの主な引数

  • x : 横軸の指定
  • y : 縦軸の指定
  • data : データフレームの指定

 

<入力>

sns.swarmplot(x='survived', y='age', data=titanic)
plt.show()

 

<出力>

swarmplotのサンプル

 

SeabornでHeatmapを描画

 

SeabornでHeatmapを描画するときは主に以下のメソッドを使用します。

  1. heatmap : ヒートマップを描画

 

heatmapは、主に相関係数や欠損値を可視化するときに便利なツールです。

そのため、今回のデータセットの相関係数をまず求めてみます。

<入力>

# 相関係数を求める
titanic_corr = titanic.corr()
titanic_corr

 

<出力>

titanic datasetの相関行列

 

heatmapの具体例

 

heatmapの具体例を表示します。

Heatmap

  1. data : pandas DataFrame or ndarray
  2. annot : 各セルにデータの値を表示(Trueで表示)

 

<入力>

sns.heatmap(data=titanic.corr(), annot=False)
plt.show()

 

<出力>

Heatmapのサンプル

『annot』をTrueにする事で、データの値を各セルに記入できます。

<入力>

sns.heatmap(data=titanic.corr(), annot=True)
plt.show()

 

<出力>

Heatmapのサンプル2

Seabornのグラフをカスタマイズ

 

Seabornもmatplotlibと同様に、グラフをカスタマイズすることができます。

変更点は、snsのメソッドのax引数に、matplotlibのaxインスタンスを指定するところです。

逆にそれ以外は、matplotlibの編集方法と変わりません。

 

なかなかイメージがわかないと思うので、実際のコードの具体例を使って説明していきます。

<Input>

fig, ax = plt.subplots(1, 2, figsize=(10,6), constrained_layout=True)
sns.swarmplot(ax = ax[0], x='survived', y='age', data=titanic)
sns.countplot(ax = ax[1], x='pclass', data =titanic)
ax[0].set_title('figure 1')
ax[1].set_title('figure 2')
plt.show()

 

<output>

seabornのカスタマイズ具体例

より簡易的な場合は、matplotlib同様以下のように書くことができます。

<Input>

sns.distplot(titanic['age'])
plt.title('Using matplotlib')
plt.xlabel('Value of Age')
plt.show()

 

<Output>

seabornのカスタマイズ具体例2

 

まとめ

 

Seabornの基本的なグラフ描画方法を体系的に解説しました。

matplotlibとは異なり、こんなに簡単におしゃれなグラフが作成できるのは驚きですね。

また、細かいカスタマイズ方法もmatplotlibと変わらないため覚えることも少なくてありがたいです。

他のライブラリの使用方法について知りたい方は下記を参考にしてください。

 

ABOUT ME
努力のガリレオ
【運営者】 : 東大で理論物理を研究中(経歴)東京大学, TOEIC950点, NASA留学, カナダ滞在経験有り, 最優秀塾講師賞, オンライン英会話講師試験合格, ブログと独自コンテンツで収益6桁達成 【編集者】: イングリッシュアドバイザーとして勤務中(経歴)中学校教諭一種免許取得[英語],カナダ留学経験あり, TOEIC650点
【必見】オンライン英会話を利用しないのは時代遅れ?

 

 

英語学習でオンライン英会話を利用しないのは、時代遅れです…

 

『スピーキングができないから、オンライン英会話はまだまだ後回し…』と思っている方は大間違いです。

 

最近のオンライン英会話は、教材が豊富で、もはや参考書・問題集は不要になりつつあります…

また、多くのオンライン英会話が最新メソッドを導入して、スピーキングのみならず、リーディング・リスニング・ライティングの能力も上がる教材を導入しています。

さらに、効率的な記憶ツールや学習カウンセリングのサービスが提供されることもあります!!

 

特に初心者の方は、下記の記事で紹介しているオンライン英会話をチェックしてみてください。

 

【東大生が厳選】初心者にオススメなオンライン英会話10選実は、最適なオンライン英会話はユーザーによって異なります。本記事では、複数のオンライン英会話を経験した私が、他社と比較しつつ特徴を明確にして本当にオススメできるオンライン英会話を10個厳選しました。...

 

中には、2週間の無料体験期間を提供しているオンライン英会話もあります。

英語学習が滞っている方や英語学習を習慣化できていない方は無料体験期間で良いので挑戦してみてください。

何事も行動することが大切です。

 

また、多くのオンライン英会話がTOEICやTOEFL等の外部英語試験の対策レッスンを提供してきています。

中には、追加料金なしで、本番さながらの対策や面接対策を行うことができるオンライン英会話もあります。

 

特にTOEIC対策に強いオンライン英会話は下記を参考にしてください。

 

【徹底比較】TOEIC対策に強いオンライン英会話5選|東大生が厳選!オンライン英会話はTOEICのスコアを効率的に上げる最強のツールです。本記事では、TOEICにオンライン英会話が効果的な理由とTOEIC対策に強いオンライン英会話を厳選しました。詳しい内容は記事を参考にしてください。...

 

TOEFL対策に強いオンライン英会話に関しては下記を参考にしてください。

 

【徹底比較】TOEFL対策に強いオンライン英会話5選|東大生が厳選!TOEFL対策にオンライン英会話は有効です。事実、私もTOEFL対策のためにオンライン英会話を使用してTOEFL ibtの4技能、TOEFL itpのスコアを爆上げすることができました。この記事では、私が思うTOEFL対策に最適なオンライン英会話を紹介しました。...