はじめに
このチュートリアルでは、Matplotlib の pyplot インターフェイスの使い方を段階的に説明します。pyplot モジュールは、Matplotlib を MATLAB のように動作させる関数のコレクションであり、グラフを簡単に作成してカスタマイズできるようにします。このチュートリアルでは、Matplotlib とその概念に関する基本的な知識があることを前提としています。
VM のヒント
VM の起動が完了したら、左上隅をクリックして Notebook タブに切り替え、Jupyter Notebook を使って練習しましょう。
時々、Jupyter Notebook が読み込み終了するまで数秒待つ必要がある場合があります。Jupyter Notebook の制限により、操作の検証を自動化することはできません。
学習中に問題がある場合は、Labby にお問い合わせください。セッション後にフィードバックを提供してください。すぐに問題を解決いたします。
単純なグラフの生成
まずは、pyplot の plot 関数を使って単純なグラフを生成しましょう。この例では、y 値が [1, 2, 3, 4] の折れ線グラフを描画します。
import matplotlib.pyplot as plt
plt.plot([1, 2, 3, 4])
plt.ylabel('some numbers')
plt.show()
解説:
matplotlibからpyplotモジュールをインポートし、pltというエイリアスで参照できるようにします。plot関数は折れ線グラフを生成するために使用されます。y 値の単一のリストを提供することで、x 値は自動的に[0, 1, 2, 3]と生成されます。なぜなら、Python の範囲は 0 から始まるためです。ylabel関数は y 軸のラベルを設定します。- 最後に、
show関数がグラフを表示します。
グラフのスタイルの設定
次に、グラフのスタイルをカスタマイズしましょう。plot 関数のオプションの 3 番目の引数を使って、グラフの色と線の種類を示すフォーマット文字列を指定することができます。たとえば、赤い丸で同じ折れ線グラフを描画しましょう。
plt.plot([1, 2, 3, 4], [1, 4, 9, 16], 'ro')
plt.axis([0, 6, 0, 20])
plt.show()
解説:
- フォーマット文字列
'ro'を使って、グラフを赤い丸で表示するように指定します。 axis関数は、軸のビューポートを設定するために使用され、x 軸と y 軸の値の範囲を指定します。
複数の線の描画
配列を使って 1 つの関数呼び出しで異なるスタイルの複数の線を描画することもできます。点線の赤い線、青い四角、緑の三角形の 3 つの線を描画しましょう。
import numpy as np
t = np.arange(0., 5., 0.2)
plt.plot(t, t, 'r--', t, t**2, 'bs', t, t**3, 'g^')
plt.show()
解説:
numpyモジュールを使って、等間隔でサンプリングされた時間値の配列tを作成します。plot関数には 3 組のxとyの値が渡され、その後にフォーマット文字列'r--'(点線の赤い線)、'bs'(青い四角)、'g^'(緑の三角形)が渡されます。
カテゴリ変数を使った描画
Matplotlib を使えば、カテゴリ変数を使ってグラフを作成できます。カテゴリ変数を使って棒グラフ、散布図、折れ線グラフを作成しましょう。
names = ['group_a', 'group_b', 'group_c']
values = [1, 10, 100]
plt.figure(figsize=(9, 3))
plt.subplot(131)
plt.bar(names, values)
plt.subplot(132)
plt.scatter(names, values)
plt.subplot(133)
plt.plot(names, values)
plt.suptitle('Categorical Plotting')
plt.show()
解説:
- 3 つのカテゴリ値を持つリスト
namesと、それに対応する値を表すリストvaluesを作成します。 figure関数を呼び出して、指定されたサイズの新しいグラフを作成します。subplot関数を使ってサブプロットのグリッドを作成します。この例では、3 つのサブプロットを作成し、それぞれ異なる種類のグラフ(棒グラフ、散布図、折れ線グラフ)を描画します。suptitle関数を使って、グラフの上位タイトルを設定します。
線のプロパティのカスタマイズ
Matplotlib を使えば、線幅、破線スタイル、色など、様々な線のプロパティをカスタマイズできます。線のプロパティを設定するいくつかの方法を示しましょう。
x = np.arange(0, 5, 0.1)
line, = plt.plot(x, np.sin(x), '-')
## Using the Line2D instance's setter method
line.set_linewidth(2.0) ## Set the linewidth property of the line to 2.0
## Using the pyplot.setp function
plt.setp(line, color='r', linewidth=2.0) ## Set the color and linewidth properties using the setp function
plt.show()
解説:
- 配列
xを作成し、np.sin関数を使って対応する y 値を計算します。 plot関数を呼び出して線グラフを作成します。Line2Dインスタンスのsetメソッドを使って、線の線幅プロパティを 2.0 に設定します。- あるいは、
setp関数を使って、キーワード引数を使って線の色や線幅などの複数のプロパティを設定できます。
まとめ
このチュートリアルでは、Matplotlib の pyplot インターフェイスを使ってグラフを作成し、カスタマイズする方法を学びました。単純なグラフの生成、グラフのスタイルの設定、複数の線の描画、カテゴリ変数の使用、および線のプロパティのカスタマイズについて説明しました。これらの機能を活用することで、データを効果的に視覚化するためのさまざまな種類のグラフを作成できます。