データの可視化は、数値やテキストで表された大量のデータを、視覚的に一目で理解できる形にするために非常に重要です。グラフや図を使ってデータの特徴や傾向を掴むことは、分析や意思決定のための強力な手段です。Pythonでは、多くの強力なライブラリがこの目的に使用されていますが、その中でも matplotlib と seaborn は、最も広く利用されている可視化ライブラリです。
7.1 matplotlibの基礎
matplotlib は、Pythonの標準的なデータ可視化ライブラリです。低レベルから高度なカスタマイズまで、柔軟なコントロールができ、非常に多様なグラフを描くことができます。
matplotlibのインストール
まずは、ライブラリのインストール方法から始めます。matplotlib
がインストールされていない場合は、以下のコマンドでインストールします。
pip install matplotlib
matplotlibの基本的な使い方
matplotlib
でグラフを描くために基本的に使われるのが、pyplot
というサブモジュールです。pyplot
を使えば、簡単にグラフを作成できます。まずは、簡単な折れ線グラフを描くコード例を見てみましょう。
import matplotlib.pyplot as plt
# データの用意
x = [1, 2, 3, 4, 5]
y = [1, 4, 9, 16, 25]
# グラフの作成
plt.plot(x, y)
# タイトルとラベルの設定
plt.title("Sample Line Plot")
plt.xlabel("X axis")
plt.ylabel("Y axis")
# グラフの表示
plt.show()
このコードは、X軸に1から5までの値、Y軸にそれぞれのXの値を二乗した値をプロットする単純な折れ線グラフです。plt.plot()
で線を引き、plt.title()
や plt.xlabel()
, plt.ylabel()
を使ってグラフのタイトルや軸ラベルを追加しています。
matplotlibでのカスタマイズ
matplotlib
の強力な点は、グラフのスタイルを細かくカスタマイズできることです。例えば、以下のように線の色やスタイル、マーカーを変更することができます。
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [1, 4, 9, 16, 25]
# 線のスタイルや色、マーカーのカスタマイズ
plt.plot(x, y, color='green', linestyle='--', marker='o', label="Sample Data")
plt.title("Customized Line Plot")
plt.xlabel("X axis")
plt.ylabel("Y axis")
# 凡例の表示
plt.legend()
plt.show()
このコードでは、color
引数で線の色を緑に、linestyle
で線を破線に、marker
で各点に丸いマーカーを付けています。さらに、plt.legend()
を使って凡例を表示しています。
7.2 さまざまな種類のグラフ
matplotlib
を使って描けるグラフは折れ線グラフだけではありません。棒グラフ、散布図、ヒストグラム、円グラフなど、さまざまな種類のグラフを簡単に作成できます。
7.2.1 棒グラフ
棒グラフは、カテゴリごとのデータの比較に適しています。例えば、以下のコードで、カテゴリごとの売上を示す棒グラフを作成します。
import matplotlib.pyplot as plt
# カテゴリと売上データ
categories = ['A', 'B', 'C', 'D']
sales = [10, 20, 15, 25]
# 棒グラフの作成
plt.bar(categories, sales)
plt.title("Sales by Category")
plt.xlabel("Category")
plt.ylabel("Sales")
plt.show()
7.2.2 散布図
散布図は、二つの連続した変数の関係を視覚化するのに適しています。以下の例では、XとYのランダムデータを散布図で表現します。
import matplotlib.pyplot as plt
# ランダムなデータを生成
x = [5, 7, 8, 7, 2, 17, 2, 9, 4, 11]
y = [99, 86, 87, 88, 100, 86, 103, 87, 94, 78]
# 散布図の作成
plt.scatter(x, y)
plt.title("Sample Scatter Plot")
plt.xlabel("X values")
plt.ylabel("Y values")
plt.show()
7.2.3 ヒストグラム
ヒストグラムは、データの分布を視覚化するために使われます。以下は、ランダムに生成したデータの分布を表すヒストグラムです。
import matplotlib.pyplot as plt
# ランダムなデータ
data = [1, 2, 2, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 5]
# ヒストグラムの作成
plt.hist(data, bins=5)
plt.title("Sample Histogram")
plt.xlabel("Value")
plt.ylabel("Frequency")
plt.show()
7.3 seabornの基礎
seaborn は、matplotlib
をベースにした高レベルな可視化ライブラリです。seabornは、特に統計的なデータを視覚化するのに適しており、より洗練されたグラフが簡単に作成できます。
seabornのインストール
seaborn
がインストールされていない場合、以下のコマンドでインストールします。
pip install seaborn
seabornの基本的な使い方
まずは、seaborn
を使って簡単な折れ線グラフを描いてみます。seabornのlineplot
関数を使えば、シンプルに折れ線グラフを描けます。
import seaborn as sns
import matplotlib.pyplot as plt
# データの準備
x = [1, 2, 3, 4, 5]
y = [1, 4, 9, 16, 25]
# seabornを使った折れ線グラフ
sns.lineplot(x=x, y=y)
plt.title("Seaborn Line Plot")
plt.xlabel("X axis")
plt.ylabel("Y axis")
plt.show()
matplotlib
と異なり、seaborn
では色やスタイルが自動的に設定されるため、コードがシンプルで、かつ見栄えの良いグラフが作成できます。
7.4 seabornによる高度なプロット
seaborn は、デフォルトで非常に美しいグラフを生成しますが、さらに高度なプロットを行うこともできます。特に、ヒートマップやペアプロットなど、複雑な統計的グラフの作成に便利です。
7.4.1 ヒートマップ
ヒートマップは、データの相関関係や密度を視覚化するのに役立ちます。以下は、ランダムな行列データをヒートマップで表現した例です。
import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np
# ランダムなデータの生成
data = np.random.rand(10, 12)
# ヒートマップの作成
sns.heatmap(data, annot=True, cmap='coolwarm')
plt.title("Heatmap Example")
plt.show()
7.4.2 ペアプロット
seaborn
の pairplot
を使うと、データセット内の全ての変数の組み合わせを散布図として表示することができます。これは、データの相関や分布を理解するのに非常に役立ちます。
import seaborn as sns
import matplotlib.pyplot as plt
from seaborn import load_dataset
# サンプルデータセットをロード
iris = load_dataset('iris')
# ペアプロットの作成
sns.pairplot(iris, hue='species')
plt.show()
7.5 matplotlib と seaborn の比較
matplotlib は汎用的で、カスタマイズが非常にしやすいですが、デフォルトのスタイルはシンプルです。一方、seaborn は、デフォルトで美しいスタイルを持ち、統計的なデータの視覚化に強いですが、細かいカスタマイズには多少の制限があります。以下に、両者の主な特徴をまとめます。
特徴 | matplotlib | seaborn |
---|---|---|
カスタマイズ | 非常に柔軟 | 一部制限あり |
デフォルトのスタイル | シンプル | 美しいデザインが標準 |
統計的可視化 | 対応可能だが設定が必要 | 統計グラフに強い |
ヒートマップなど | 対応可能だがやや手間がかかる | 簡単に作成できる |
7.6 実際のプロジェクトでの可視化の利用
最後に、実際のプロジェクトでデータの可視化を行う際のポイントをいくつか紹介します。
- 目的に合わせたグラフを選ぶ: 可視化は、伝えたい情報を正確に、そしてわかりやすく伝えることが最も重要です。データの性質に応じて、適切なグラフを選びましょう。
- カスタマイズは必要に応じて:
matplotlib
ではカスタマイズが可能ですが、視覚的な一貫性を保つために、過度なカスタマイズは避ける方が良い場合もあります。 - 自動化された可視化: データが定期的に変わる場合や、大量のデータを扱う場合は、可視化のプロセスを自動化することも考慮しましょう。Pythonのスクリプトを使って、定期的にグラフを生成し、レポートを作成することも可能です。
これで、matplotlib と seaborn を使ったデータの可視化についての基本的な内容を学びました。この章で紹介した内容を基に、実際のデータセットに適用し、より高度なデータ分析やレポート作成に役立ててください。
初心者におすすめ!プログラミングスクールのススメ
未経験でも気軽に!サブスク型プログラミングスクール【Freeks】
プログラミングを始めたいと思っているそこのあなた、独学よりもプログラミングスクールが断然おすすめです!理由は簡単、続けやすさです。
独学の挫折率、驚きの87.5%!
独学でプログラミングを続けるのは、実はかなりハードルが高いんです。データによると、なんと87.5%もの学習者が途中で挫折しているとか。一方、各プログラミングスクールが公表しているデータによると、受講生の約95%が最後までやり抜いているとのこと。数字を見れば一目瞭然、プログラミングスクールの方が圧倒的に続けやすいんです。
有料と無料、スクールの違いは?
プログラミングスクールには有料と無料のタイプがありますが、その違いは次の通りです:
- 受講条件が異なる
- 学べるスキルやカリキュラム内容が異なる
- 就職や転職のサポート内容が異なる
どちらが自分に合っているか、よく考えて選ぶのが大事です。
サブスク型プログラミングスクール『FREEKS(フリークス)』に注目!
プログラミング初心者でも学びやすいと評判の『FREEKS』、その特徴は以下の通り:
- 未経験者向けのわかりやすいカリキュラム
- 経験豊富なエンジニアのサポート
- オンラインで自分のペースで学習可能
なんと、月会費のみで全カリキュラムが受け放題!Java、PHP、HTML/CSS、JavaScriptなど、多彩なプログラミング言語が学べるんです。しかも、AIが質問に自動で答えてくれるシステムも導入済み。
終了後は副業もサポート!
カリキュラムを終了した後には、Freeks経由で未経験者でも取り組める副業案件の受注が可能。実務を通じてスキルを磨き、市場価値の高いエンジニアへの道が開けます。
独学で悩むくらいなら、まずはプログラミングスクールをチェックしてみるのもアリかもしれませんよ!
↓ ↓ こちらをクリック ↓ ↓