グラフレイアウトの概念
〇figure と axes
・1つのfigureに複数のaxesを配置することができます。
・figureはたくさんのグラフを描くための大きなキャンバス。
・axesはキャンバスの中のグラフを描く領域。
※グラフを2つ描く場合は、以下の2パターンが考えられる!
①figureを2つ用意し、それぞれのfigureの中にaxesを1つずつ作成。
②figureを1つ用意し、その中にaxesを2つ作成。
〇複数のfigureの作成
①figureオブジェクトを作成するplt.figure()関数で、
グラフを描くためのキャンバスを用意。
②にplt.plot()関数を記述することで、
figureの中にグラフ領域であるaxesを作成
※plt.figure()関数に引数を指定すると、キャンバスの設定ができる。
# matplotlib.pyplotのインポート
import matplotlib.pyplot as plt
# numpyのインポート
import numpy as np
# データの作成
x = np.array([1,2,3,4,5,6,7,8,9,10])
y1 = x #1次関数
y2 = x ** 2 #2次関数
# 1つ目のfigureの作成
plt.figure(figsize=(1,1))
# 1次関数グラフの作成
plt.plot(x, y1)
# グラフの表示
plt.show()
# 2つ目のfigureの作成
plt.figure(figsize=(4,4))
# 2次関数グラフの作成
plt.plot(x, y2)
# グラフの表示
plt.show()
〇複数のaxesの作成
①plt.figure()関数でキャンバスを用意。
②次にplt.subplot()関数でaxesを作成。
③plt.plot()関数でグラフを作成。
plt.subplot()関数
・引数(行数、列数、プロット番号)を指定できる。
# matplotlib.pyplotのインポート
import matplotlib.pyplot as plt
# numpyのインポート
import numpy as np
# データの作成
x = np.array([1,2,3,4,5,6,7,8,9,10])
y1 = x #1次関数
y2 = x ** 2 #2次関数
# figureの作成
plt.figure(figsize=(8, 4))
# 1つ目のグラフ領域の作成
plt.subplot(1, 2, 1)
# 1次関数グラフの作成
plt.plot(x, y1)
# 2つ目のグラフ領域の作成
plt.subplot(1, 2, 2)
# 2次関数グラフの作成
plt.plot(x, y2)
# グラフの表示
plt.show()
〇figureオブジェクトと
axesオブジェクトの作成・操作
①plt.figure()関数を実行する。
②次にfigureオブジェクトを代入した変数のadd_subplot()関数を実行。
→figオブジェクトにグラフ領域のaxesが追加。
③plot()関数を使用してグラフを描画。
#1
fig = plt.figure()
#2
ax = figureオブジェクトが代入された変数.add_subplot(行数, 列数, プロット番号)
#3
ax.plot(横軸のデータ, 縦軸のデータ)
例)
# matplotlib.pyplotのインポート
import matplotlib.pyplot as plt
# numpyのインポート
import numpy as np
# データの作成
x = np.array([1,2,3,4,5,6,7,8,9,10])
y1 = x #1次関数
y2 = x ** 2 #2次関数
# figureオブジェクトの作成
fig = plt.figure(figsize=(4, 8))
# グラフ領域の作成
ax1 = fig.add_subplot(2, 1, 1)
# 1次関数グラフの作成
ax1.plot(x, y1)
# グラフ領域の作成
ax2 = fig.add_subplot(2, 1, 2)
# 2次関数グラフの作成
ax2.plot(x, y2)
# グラフの表示
plt.show()
〇figureオブジェクトと
axesオブジェクトの同時作成・操作
fig, ax = plt.subplots(行数, 列数, figsize=(横幅, 高さ))
→figureオブジェクトとaxesオブジェクトが同時に作成され、それらが戻り値として返ってきます。
# matplotlib.pyplotのインポート
import matplotlib.pyplot as plt
# numpyのインポート
import numpy as np
# データの作成
x = np.array([-5,-4,-3,-2,-1,0,1,2,3,4,5])
y1 = x # 正の傾きの1次関数
y2 = x ** 2 # 下に凸の2次関数
y3 = -x # 負の傾きの1次関数
y4 = -x ** 2 # 上に凸の2次関数
# figureオブジェクトとaxesオブジェクトの作成
fig, ax = plt.subplots(2, 2, figsize=(8, 8))
# グラフの作成
ax[0,0].plot(x, y1)
ax[0,1].plot(x, y2)
ax[1,0].plot(x, y3)
ax[1,1].plot(x, y4)
# グラフの表示
plt.show()