1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

matplotlibとsebornの違いをまとめてみました

Posted at

MatplotlibSeaborn は、どちらもPythonでデータ可視化を行うためのライブラリですが、それぞれに特徴と用途があります。以下に両者の違いを詳細に説明します。

1. 基本的な概要

Matplotlib

  • Python標準のデータ可視化ライブラリで、基本的なプロットを作成するために使用されます。
  • 高い柔軟性を持つため、カスタマイズの幅が非常に広いですが、コードがやや複雑になることがあります。
  • 低レベルのライブラリとして、可視化の基礎を構築することができます。

Seaborn

  • Matplotlibを基盤として構築された高レベルのデータ可視化ライブラリです。
  • 見た目が美しいテーマ設定がデフォルトで適用され、複雑なプロットも簡単に作成できます。
  • データフレーム(特にPandasデータフレーム)と統合して使うのが得意で、統計的な可視化に適しています。

2. 主な違い

特徴 Matplotlib Seaborn
目的 汎用的な可視化 統計的可視化
使いやすさ 自由度が高いが、やや煩雑 簡単なコードで見栄えの良いグラフを作成可能
見た目の美しさ デフォルトではシンプル 美しいテーマと配色がデフォルト
データの扱い 配列やリストに最適 Pandasデータフレームとの相性が良い
複雑なプロット 手動で多くの設定が必要 関数が統合されており、簡単に作成可能
テーマ設定 手動で設定 デフォルトで視覚的に優れたテーマを提供
依存性 独立して動作可能 Matplotlibに依存

3. 詳細な違い

a. 見た目の違い

Matplotlib:

  • デフォルトではシンプルで、古典的なプロットスタイル。
  • 見た目を調整するには手動で設定する必要があります。
import matplotlib.pyplot as plt

x = [1, 2, 3, 4]
y = [10, 20, 25, 30]

plt.plot(x, y)
plt.title("Matplotlib Plot")
plt.show()

スクリーンショット 2024-12-22 10.43.11.png

Seaborn:

  • デフォルトで美しい配色やスタイルが適用されます。
  • 軽微なコードで視覚的に魅力的なグラフを作成可能。
import seaborn as sns
import matplotlib.pyplot as plt

sns.set_theme()  # デフォルトテーマを適用
sns.lineplot(x=[1, 2, 3, 4], y=[10, 20, 25, 30])
plt.title("Seaborn Plot")
plt.show()

スクリーンショット 2024-12-22 10.44.07.png

b. データフレームの扱い

Matplotlib:

  • データフレームを直接扱う機能は少なく、事前にデータをリストや配列に変換する必要があります。

Seaborn:

  • Pandasデータフレームとの統合が得意で、列名を直接指定してプロットできます。
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

data = pd.DataFrame({
    "x": [1, 2, 3, 4],
    "y": [10, 20, 25, 30],
})

sns.lineplot(data=data, x="x", y="y")
plt.show()

スクリーンショット 2024-12-22 10.45.06.png

c. 統計的なプロット

Matplotlib:

  • 基本的なヒストグラムや散布図は作成可能ですが、回帰分析やカーネル密度推定などの統計的なプロットは自力で実装が必要。

Seaborn:

  • 統計的なプロットが標準で用意されており、短いコードで回帰線や分布図を作成可能。
# Seabornで回帰線付き散布図
tips = sns.load_dataset("tips")
sns.lmplot(data=tips, x="total_bill", y="tip", hue="sex")
plt.show()

スクリーンショット 2024-12-22 10.45.53.png

d. カスタマイズの柔軟性

Matplotlib:

  • 非常に細かい部分まで設定可能。
  • プロットのサイズ、色、軸の範囲、目盛りなどを細かく制御できます。
plt.figure(figsize=(8, 4))
plt.plot([1, 2, 3], [4, 5, 6], color="red", linestyle="--", linewidth=2)
plt.title("Customized Matplotlib Plot")
plt.xlabel("X-axis")
plt.ylabel("Y-axis")
plt.show()

スクリーンショット 2024-12-22 10.47.06.png

Seaborn:

  • 高度なカスタマイズは可能ですが、Matplotlibよりも制限があります。
  • ただし、簡単に美しいプロットを作成可能。

4. 併用のメリット

SeabornはMatplotlibに依存して動作しているため、両者を組み合わせて使うことが可能です。Seabornで簡単にプロットを作成した後、Matplotlibで詳細をカスタマイズするという流れが一般的です。

import seaborn as sns
import matplotlib.pyplot as plt

sns.set_theme()
sns.histplot([1, 2, 2, 3, 3, 3, 4, 4, 4, 4], bins=4)

# Matplotlibでカスタマイズ
plt.title("Seaborn with Matplotlib Customization")
plt.xlabel("Value")
plt.ylabel("Frequency")
plt.show()

スクリーンショット 2024-12-22 10.48.13.png

5. 選択基準

Matplotlibを選ぶ場合:

  • 細かいカスタマイズが必要。
  • データフレームを使わず、配列やリストを直接扱う場合。
  • 可視化の自由度を重視する場合。

Seabornを選ぶ場合:

  • 短いコードで視覚的に美しいプロットを作成したい。
  • Pandasデータフレームを直接扱いたい。
  • 統計的な分析や可視化が必要。

6. まとめ

項目 Matplotlib Seaborn
柔軟性 高い(細かいカスタマイズ可能) 中程度(基本的な部分は自動化される)
使いやすさ やや複雑 シンプルで直感的
見た目 手動で調整する必要がある デフォルトで美しい
統計的可視化 自力で実装が必要 簡単に作成可能
データフレームとの統合 弱い 強い

どちらか一方を選ぶのではなく、用途に応じて使い分けるか、併用するのがベストなアプローチです。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?