python PR

Pythonでデータ分析|seabornで美しいグラフを手軽に描画しよう

Python データ分析 seaborn
記事内に商品プロモーションを含む場合があります

データ分析を行う際、可視化は重要な役割を果たします

Pythonでデータ分析を行う場合、seabornは非常に便利で美しいグラフを作成できる可視化ライブラリです

この記事では、seabornの基本的な使い方や上手い使い方を解説していきます

また、Pythonでデータ分析を始めよう!挫折しない実践ガイドでスキルアップを参照して、Pythonデータ分析全般について学ぶことができます

筆者について

2021年から本格的にPython学習を始め、今ではPythonによる収益化に成功

大学院時代には、R言語とPythonを使って統計処理を行っていたため、Pythonを使ったデータサイエンスの知識が豊富

医療データを機械学習を用いて解析したり、学会発表も行なっている

Pythonでデータ分析を始めよう!挫折しない実践ガイドでスキルアップ

Pythonで機械学習に学んで実装してみよう【サンプルコードあり】 

seabornとは

seabornとはseabornは、Pythonでデータ可視化を行うためのライブラリで、matplotlibをベースに作られています

seabornは、統計的グラフィックスを簡単に描画できる機能が豊富に揃っており、データ分析において非常に便利です

seabornのインストール

seabornのインストールseabornをインストールするには、以下のコマンドを実行します

pip install seaborn

Anacondaを使用している場合には、

conda install seaborn

データの可視化が重要な理由

データの可視化が重要な理由データ分析において、データの可視化が重要な理由は以下の通りです

  1. データの理解: 可視化によって、データの傾向やパターンを直感的に把握しやすい。可視化により、データの構造や特徴を理解し、分析の方向性を決める上で役立ちます。
  2. 異常値の検出: グラフやチャートによって、データの分布を視覚的に確認できる。異常値や外れ値を発見し、データのクリーニングや前処理を行いやすくなります。
  3. 分析結果の検証: 分析結果をグラフやチャートで表現することで、分析が正しく行われているか、予測モデルが適切に機能しているかなどを検証しやすくなります。
  4. コミュニケーション: データ分析の結果を可視化することで、他のメンバーや関係者とのコミュニケーションが円滑になる。視覚的な情報は、言葉や数字だけでは伝わりにくいデータの傾向や関係性を効果的に伝えることが可能
  5. 意思決定の助け: 可視化によって、データをもとにした意思決定が容易になる。明確なグラフやチャートを提示することで、ビジネス上の問題解決や戦略立案に役立てることができます。

以上の理由から、データ分析においてデータの可視化は非常に重要な要素となります

可視化を行うことで、データの理解、分析結果の検証、コミュニケーションの向上、意思決定の助けとなり、効果的なデータ分析を実現することができます

seabornの基本的な使い方

seabornの基本的な使い方

seabornを使用する際には、まずseabornとmatplotlibをインポートします

sns.set()はおまじないです

import seaborn as sns
import matplotlib.pyplot as plt
#おまじない
sns.set()

散布図 (Scatter plot)

散布図 (Scatter plot)seabornで散布図を描画するには、sns.scatterplot()関数を使用します

import seaborn as sns
import matplotlib.pyplot as plt

# データの準備
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]

# 散布図の描画
sns.scatterplot(x=x, y=y)

# タイトルの追加
plt.title("Scatter Plot")

# グラフの表示
plt.show()

折れ線グラフ (Line plot)

折れ線グラフ (Line plot)折れ線グラフを描画するには、sns.lineplot()関数を使用します

import seaborn as sns
import matplotlib.pyplot as plt

# データの準備
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]

# 折れ線グラフの描画
sns.lineplot(x=x, y=y)

# タイトルの追加
plt.title("Line Plot")

# グラフの表示
plt.show()

ヒストグラムとカーネル密度推定

ヒストグラムとカーネル密度推定ヒストグラムは、データの分布を視覚的に把握するのに便利なグラフです

seabornでは、sns.histplot()関数を使ってヒストグラムを描画できます

また、kde引数をTrueに設定することで、カーネル密度推定も同時に表示できます

import seaborn as sns
import matplotlib.pyplot as plt

# データの準備
data = [1, 2, 2, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 5]

# ヒストグラムとカーネル密度推定の描画
sns.histplot(data, kde=True)

# タイトルの追加
plt.title("Histogram and Kernel Density Estimation")

# グラフの表示
plt.show()

箱ひげ図とバイオリン図

箱ひげ図とバイオリン図箱ひげ図は、データの分布や外れ値を視覚的に表現するグラフです

seabornでは、sns.boxplot()関数を使って描画できます

バイオリン図は、箱ひげ図とカーネル密度推定を組み合わせたグラフで、sns.violinplot()関数を使って描画できます

import seaborn as sns
import matplotlib.pyplot as plt

# データの準備
data = [1, 2, 2, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 5]

# 箱ひげ図の描画
sns.boxplot(data=data)

# タイトルの追加
plt.title("Box Plot")

# グラフの表示
plt.show()

# バイオリン図の描画
sns.violinplot(data=data)

# タイトルの追加
plt.title("Violin Plot")

# グラフの表示
plt.show()

ヒートマップ

ヒートマップヒートマップは、二次元データの値を色で表現するグラフです

seabornでは、sns.heatmap()関数を使ってヒートマップを描画できます

import seaborn as sns
import matplotlib.pyplot as plt

# データの準備
data = [
    [1, 2, 3, 4, 5],
    [2, 4, 6, 8, 10],
    [3, 6, 9, 12, 15],
    [4, 8, 12, 16, 20],
    [5, 10, 15, 20, 25]
]

# ヒートマップの描画
sns.heatmap(data)

# タイトルの追加
plt.title("Heatmap")
#グラフの表示
plt.show()

クラスターマップ

クラスターマップクラスターマップは、ヒートマップに階層的クラスタリングを適用したグラフです

seabornでは、sns.clustermap()関数を使ってクラスターマップを描画できます

import seaborn as sns

# データの準備
data = [
    [1, 2, 3, 4, 5],
    [2, 4, 6, 8, 10],
    [3, 6, 9, 12, 15],
    [4, 8, 12, 16, 20],
    [5, 10, 15, 20, 25]
]

# クラスターマップの描画
sns.clustermap(data)

# グラフの表示
plt.show()

ペアプロット

ペアプロットペアプロットは、データセット内の複数の変数間の関係を一度に視覚化するためのグラフです

seabornでは、sns.pairplot()関数を使ってペアプロットを描画できます

import seaborn as sns
import pandas as pd

# データの準備
data = {
    "A": [1, 2, 3, 4, 5],
    "B": [2, 4, 6, 8, 10],
    "C": [3, 6, 9, 12, 15],
    "D": [4, 8, 12, 16, 20]
}
df = pd.DataFrame(data)

# ペアプロットの描画
sns.pairplot(df)

# グラフの表示
plt.show()

カテゴリカルデータの可視化

カテゴリカルデータの可視化カテゴリカルデータを可視化するために、seabornではsns.barplot()sns.stripplot()などの関数が用意されています

import seaborn as sns
import pandas as pd

# データの準備
data = {
    "Category": ["A", "B", "C", "A", "B", "C", "A", "B", "C"],
    "Value": [1, 2, 3, 4, 5, 6, 7, 8, 9]
}
df = pd.DataFrame(data)

# 棒グラフの描画
sns.barplot(x="Category", y="Value", data=df)

# タイトルの追加
plt.title("Bar Plot for Categorical Data")

# グラフの表示
plt.show()

# ストリッププロットの描画
sns.stripplot(x="Category", y="Value", data=df)

# タイトルの追加
plt.title("Strip Plot for Categorical Data")

# グラフの表示
plt.show()

FacetGridを使った複数のグラフ

FacetGridを使った複数のグラフFacetGridを使うことで、複数のグラフを同時に描画し、データの特徴を比較しやすくできます

seabornでは、sns.FacetGrid()を使ってFacetGridオブジェクトを作成し、map()メソッドでグラフを描画できます

import seaborn as sns
import pandas as pd

# データの準備
data = {
    "Category": ["A", "A", "A", "B", "B", "B", "C", "C", "C"],
    "X": [1, 2, 3, 4, 5, 6, 7, 8, 9],
    "Y": [9, 8, 7, 6, 5, 4, 3, 2, 1]
}
df = pd.DataFrame(data)

# FacetGridの作成
g = sns.FacetGrid(df, col="Category")

# 各グリッドに散布図を描画
g.map(sns.scatterplot, "X", "Y")

# タイトルの追加
g.fig.suptitle("Scatter Plots with FacetGrid", y=1.05)

# グラフの表示
plt.show()

seabornのカスタマイズ

seabornのカスタマイズseabornでは、グラフのカスタマイズや見た目の変更を行うために、さまざまなオプションが用意されています

ここからは、seabornのオプションについて解説をしていきます

カラーパレット

カラーパレットseabornでは、set_palette()関数を使ってグラフ全体のカラーパレットを設定できます

このオプションで、グラフの色を統一感のあるものにすることができます

import seaborn as sns
import matplotlib.pyplot as plt

# カラーパレットの設定
sns.set_palette("husl")

# サンプルデータの読み込み
tips = sns.load_dataset("tips")

# ヒストグラムの描画
sns.histplot(tips["total_bill"])

# グラフの表示
plt.show()

スタイル設定

スタイル設定seabornでは、set_style()関数を使ってグラフの背景やグリッド線などのスタイルを設定できます

デフォルトのスタイルは、”darkgrid”ですが、”whitegrid”, “dark”, “white”, “ticks” などが用意されています

import seaborn as sns
import matplotlib.pyplot as plt

# スタイルの設定
sns.set_style("whitegrid")

# サンプルデータの読み込み
tips = sns.load_dataset("tips")

# 散布図の描画
sns.scatterplot(x="total_bill", y="tip", data=tips)

# グラフの表示
plt.show()

グラフサイズ調整

グラフサイズ調整グラフのサイズを調整する場合、Matplotlibのfigure()関数を使って、幅と高さを指定できます

import seaborn as sns
import matplotlib.pyplot as plt

# サンプルデータの読み込み
tips = sns.load_dataset("tips")

# グラフサイズの調整
plt.figure(figsize=(10, 5))

# ヒストグラムの描画
sns.histplot(tips["total_bill"])

# グラフの表示
plt.show()

これらのオプションを活用することで、seabornのグラフをカスタマイズし、見た目を向上させることができます

他にも、seabornやMatplotlibには多くのオプションが用意されているため、必要に応じてドキュメントを参照しながら、グラフのカスタマイズを行ってください

seaborn: statistical data visualization

まとめ

まとめ

この記事では、seabornの基本的な使い方や上手い使い方について解説しました

さらに詳しく学びたい方は、Pythonでデータ分析を始めよう!挫折しない実践ガイドでスキルアップを参照してください

また、記事の内容やサンプルコードを活用して、データ分析を行いながらseabornを使いこなしていくことが大切です

実装を重ねることで、よりスムーズにseabornを利用できるようになります

機械学習に興味がある方は、Pythonで機械学習を学んで実装してみようも参考にしてください

おすすめプログラミングスクール

DMMWEBCAMP
  • WEBCAMPはコスパ最強
  • WEBCAMPは初心者に優しい充実したサポート付き
  • 16週間プランを選択して、返金してもらおう
WEBCAMPの公式ページはこちら WEBCAMPの口コミ・評価はこちら
テックアカデミー  
  • テックアカデミーは費用対効果抜群
  • テックアカデミーのサポートは個人の能力に応じつつ、python初心者に優しい
  • まずは無料体験でテックアカデミーを知ってから受講を決める
テックアカデミーの公式ページはこちら テックアカデミーの口コミ・評価はこちら
キカガク
  • 多種多様なスキルコース
  • 初心者から専門家まで対象
  • 給付金利用で費用を抑えられる
キカガクの公式ページはこちら キカガクの口コミ・評価はこちら
Aidemy Premium
  • 完全オンラインで、時間や場所に縛られず学習したい
  • マンツーマン学習サポートにより実践に近い経験をしたい
  • 未経験から機械学習エンジニアになりたい
Aidemy Premiumの公式ページはこちら Aidemy Premiumの口コミ・評価はこちら
My Agile Privacy
This website uses technical and profiling cookies. Clicking on "Accept" authorises all profiling cookies. Clicking on "Refuse" or the X will refuse all profiling cookies. By clicking on "Customise" you can select which profiling cookies to activate.