Matplotlib によるデータ分析のためのビジュアライゼーション

PythonPythonBeginner
今すぐ練習

This tutorial is from open-source community. Access the source code

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

このチュートリアルでは、Python で Matplotlib を使ってビジュアライゼーションを作成する方法を学びます。Matplotlib は、Python で人気のあるデータ可視化ライブラリで、さまざまなチャートやグラフを作成するために使用されます。Matplotlib を使えば、折れ線グラフ、散布図、棒グラフ、ヒストグラムなど、他の多くの種類のビジュアライゼーションを作成できます。

VM のヒント

VM の起動が完了したら、左上隅をクリックして ノートブック タブに切り替え、Jupyter Notebook を使って練習しましょう。

時々、Jupyter Notebook が読み込み終わるまで数秒待つ必要がある場合があります。Jupyter Notebook の制限により、操作の検証を自動化することはできません。

学習中に問題に直面した場合は、Labby にお尋ねください。セッション後にフィードバックを提供してください。すぐに問題を解決いたします。

Matplotlib のインポート

ビジュアライゼーションを作成する前に、Matplotlib ライブラリをインポートする必要があります。また、NumPy ライブラリを使ってサンプルデータを生成します。

import matplotlib.pyplot as plt
import numpy as np

サンプルデータの作成

ビジュアライゼーションに使用するサンプルデータを作成しましょう。11 個の x,y データポイントを持つ 4 セットのデータを生成します。

x = [10, 8, 13, 9, 11, 14, 6, 4, 12, 7, 5]
y1 = [8.04, 6.95, 7.58, 8.81, 8.33, 9.96, 7.24, 4.26, 10.84, 4.82, 5.68]
y2 = [9.14, 8.14, 8.74, 8.77, 9.26, 8.10, 6.13, 3.10, 9.13, 7.26, 4.74]
y3 = [7.46, 6.77, 12.74, 7.11, 7.81, 8.84, 6.08, 5.39, 8.15, 6.42, 5.73]
x4 = [8, 8, 8, 8, 8, 8, 8, 19, 8, 8, 8]
y4 = [6.58, 5.76, 7.71, 8.84, 8.47, 7.04, 5.25, 12.50, 5.56, 7.91, 6.89]

サブプロット付きのグラフを作成する

ここでは、4 つのサブプロット付きのグラフを作成します。各サブプロットには、それぞれのデータセット用のものを用意します。また、すべてのサブプロットに対して x 軸と y 軸の範囲を同じに設定します。

fig, axs = plt.subplots(2, 2, sharex=True, sharey=True, figsize=(6, 6),
                        gridspec_kw={'wspace': 0.08, 'hspace': 0.08})
axs[0, 0].set(xlim=(0, 20), ylim=(2, 14))
axs[0, 0].set(xticks=(0, 10, 20), yticks=(4, 8, 12))

データをプロットする

各サブプロットに対して、x と y のデータポイントをプロットし、線形回帰直線を追加します。また、データに関する統計情報を含むテキストボックスを追加します。

datasets = {
    'I': (x, y1),
    'II': (x, y2),
    'III': (x, y3),
    'IV': (x4, y4)
}

for ax, (label, (x, y)) in zip(axs.flat, datasets.items()):
    ax.text(0.1, 0.9, label, fontsize=20, transform=ax.transAxes, va='top')
    ax.tick_params(direction='in', top=True, right=True)
    ax.plot(x, y, 'o')

    ## 線形回帰
    p1, p0 = np.polyfit(x, y, deg=1)  ## 傾き、切片
    ax.axline(xy1=(0, p0), slope=p1, color='r', lw=2)

    ## 統計情報用のテキストボックスを追加
    stats = (f'$\\mu$ = {np.mean(y):.2f}\n'
             f'$\\sigma$ = {np.std(y):.2f}\n'
             f'$r$ = {np.corrcoef(x, y)[0][1]:.2f}')
    bbox = dict(boxstyle='round', fc='blanchedalmond', ec='orange', alpha=0.5)
    ax.text(0.95, 0.07, stats, fontsize=9, bbox=bbox,
            transform=ax.transAxes, horizontalalignment='right')

plt.show()

結果の解釈

得られたビジュアライゼーションは、4 つのサブプロットのセットで、それぞれ異なるデータセットを示しています。すべてのサブプロットに対して x 軸と y 軸の範囲は同じです。各サブプロットには、x と y のデータポイントとともに線形回帰直線が含まれています。各サブプロットの右下隅のテキストボックスには、平均、標準偏差、相関係数を含むデータに関するいくつかの統計情報が表示されています。

まとめ

このチュートリアルでは、Python で Matplotlib を使ってビジュアライゼーションを作成する方法を学びました。サブプロット付きのグラフを作成し、データポイントをプロットし、線形回帰直線を追加し、データに関する統計情報を含むテキストボックスを追加する方法を学びました。Matplotlib を使えば、データを探索し分析するためのさまざまなビジュアライゼーションを作成できます。