グラフレイアウトの概念

〇figure と axes

画像1

・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()関数に引数を指定すると、キャンバスの設定ができる。

画像2

# 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()

画像3

画像4


〇複数のaxesの作成

 ①plt.figure()関数でキャンバスを用意。
 ②次にplt.subplot()関数でaxesを作成。
 ③plt.plot()関数でグラフを作成。

plt.subplot()関数

  ・引数(行数、列数、プロット番号)を指定できる。

画像5

画像6


# 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()

画像7



〇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()

画像8


〇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()

画像9













いいなと思ったら応援しよう!