プロジェクト

全般

プロフィール

Python Matplotlib

はじめに

Pythonでグラフをプロットするライブラリの定番です。MATLABのグラフプロットに近い使い勝手を提供する pyplot API と、オブジェクト指向APIと2つのAPI体系が用意されています。

プログラミングメモ

ライブラリのインポート

pyplot APIのインポート

import matplotlib.pyplot as plt

pyplotモジュールをインポートします。慣例で、名前をpltで参照しています。

オブジェクト指向APIのインポート

T.B.D.

ラベル

タイトル

グラフの上部中央に表示する題名になるラベルです。
plt.title('memory plot')

軸ラベル

plt.xlabel('time')
plt.ylabel('memory[KiB]')

グリッド表示

目盛の線の表示

plt.grid()

軸線(Major)を表示 plt.grid() 軸線(MajorとMinor)を表示、Minorは破線を指定。コード例は後述
    plt.minorticks_on()
    plt.grid(which="major")
    plt.grid(which="minor", linestyle=":")

日時

時系列データで、軸の表示を日時にする場合、文字列ではなく datetime型で渡す必要があります。

日時の軸の表示設定

日時は文字数が多いので、デフォルトの軸の値の表示は重なり合ってしまうので、軸の値の表示を回転させる等のテクニックが必要になります。

デフォルトの表示
30度回転 plt.xticks(rotation=30)
30度回転と書式をHH:MMに指定
  • 日時の軸の表現形式を変更
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
  :
plt.xticks(rotation=30)
plt.gca().xaxis.set_major_formatter(mdates.DateFormatter("%H:%M"))

複数のグラフを1枚の画像にプロット

subplotを使って、複数のグラフを1つの画像にプロットします。グラフの縦・横・プロット対象インデックスを指定すると、そのグラフにプロットされます。

縦に2つ、横に3つのグラフを一つの画像にプロットし、その4つ目(2行目1桁目)にプロット開始する
plt.subplot(2, 3, 4)

画像全体のラベルは、plt.suptitle('Whole Title')

一つのグラフに複数のプロット

2つのプロットを実行します。

plt.plot(xarray, y1array, color='black', label='cpu')  # 1つ目のプロット、黒色で、凡例を'cpu'
plt.plot(xarray, y2array, color='blue', label='memory')  # 2つ目のプロット、青色で、凡例を'memory'
plt.legend(loc='upper right')  # 凡例を、右上に表示

同じグラフに複数のデータ系列を重ねて表示するので、色を分けると便利です。plot()関数の引数 color で色をそれぞれ指定しています。
次に凡例を表示するため、plot()関数の引数 label で名前を指定し、legend()関数の引数 loc で凡例の表示位置を指定します。


約1年前に更新