Code Python

【Python】Matplotlibの使い方まとめ

Matplotlibは、データのグラフ描画に必要な機能を提供するPythonのライブラリです。

Matplotlib公式サイトはこちら
シンプルなグラフを描画することができます。

matplotlibをインストール

pipを使ってmatplotlibライブラリをインストールします。

$ python -m pip install -U pip
$ python -m pip install -U matplotlib

インストールされたか確認します。

$ pip list
Package         Version
--------------- -------
〜(略)〜
matplotlib      3.4.1

matplotlibをインポート

matplotlibライブラリのpyplotモジュールをインポートして使っていきます。
この中に、描画に使用するメソッドが含まれています。

慣例的に、pltという名前でインポートします。

import matplotlib.pyplot as plt

pyplotAPIとオブジェクト指向API

Matplotlibには、pyplotAPIオブジェクト指向APIがあります。
一般的に、pyplotAPIの方が手軽に使える一方、オブジェクト指向APIの方が柔軟性が高いです。

pylabAPIというのもありますが、推奨されていないのでpyployAPIかオブジェクト指向APIを代わりに使いましょう。

pyplotAPIによる描画方法

pyplotAPIを使用すると、このように比較的少ない記述でグラフを描画することができます。

import numpy as np
import matplotlib.pyplot as plt

x = np.arange(0, 10, 0.1)
y = np.cos(x)

plt.plot(x, y) # グラフにデータをプロット
plt.show() # グラフを表示

オブジェクト指向APIによる描画方法

オブジェクト指向APIでは、以下のようなグラフの部品をオブジェクトとして管理します。

  • figure(グラフのキャンバス)
  • axes(グラフ本体)
  • axis(軸)
  • image(画像)
  • legend(判例)
import numpy as np
import matplotlib.pyplot as plt

x = np.arange(0, 10, 0.01)
y = np.cos(x)

fig = plt.figure() # グラフキャンバスを作成
ax = fig.add_subplot(111) # グラフ本体を作成
ax.plot(x, y) # グラフにデータをプロット
plt.show() # グラフ表示

オブジェクト指向APIを用いることで、複数グラフの描画も可能です。

add_subplot関数に渡す引数は、グラフを並べたときの(行の数 列の数 左上から数えたときの順番)です。
これで、ax1〜ax4が左上から右下に向かって順番に配置されます。

import numpy as np
import matplotlib.pyplot as plt

x1 = np.arange(0, 1, 0.01)
y1 = x1**2
x2 = np.arange(0, 1, 0.01)
y2 = x2**3
x3 = np.arange(0, 1, 0.01)
y3 = x3**4
x4 = np.arange(0, 1, 0.01)
y4 = x4**5

fig = plt.figure()

ax1 = fig.add_subplot(221)
ax2 = fig.add_subplot(222)
ax3 = fig.add_subplot(223)
ax4 = fig.add_subplot(224)

ax1.plot(x1, y1)
ax2.plot(x2, y2)
ax3.plot(x3, y3)
ax4.plot(x4, y4)

plt.show()

各種グラフの描画方法

ここでは各種グラフの描画方法を紹介していきますが、基本的にpyplotAPIを使った記法で記述します。

線グラフ

plt.plot(x, y)メソッドで線グラフを描画できます。

import numpy as np
import matplotlib.pyplot as plt

x = np.arange(-10, 10, 0.01)
y = x**2

plt.plot(x, y) # 線グラフをプロット
plt.show()

散布図

plt.scatter(x, y)メソッドで散布図をプロットできます。

import numpy as np
import matplotlib.pyplot as plt

x = np.random.rand(100)
y = np.random.rand(100)

plt.scatter(x, y) # 散布図をプロット
plt.show()

棒グラフ

plt.bar(x, y)メソッドで棒グラフを描画できます。

import numpy as np
import matplotlib.pyplot as plt

x = np.arange(1, 5, 1)
y = x**2

plt.bar(x, y) # 棒グラフをプロット
plt.show()

-Code, Python

© 2024 トンボのようにまっすぐ進んでいたい Powered by AFFINGER5