matplotlib は基本中の基本しかわかっていません。
matplotlib を調べていると figure と axes というものが出てきたので調べてみました。
以下のサイトに詳しくわかりやすく説明がありました。
www.yutaka-note.com
figure と axes を調べてみると、figure は「図形」で、axes は「軸」でした。
そのまま翻訳するとよくわからないので、実際に表示してみます。
※axesはまだよくわかってません。
figure は表示範囲のことだと思います。
今まで figure は使っていなかったのですが、plt.plot()を書けば自動的に設定されているようでして、特に設定が必要がなければ書かなくてもよいみたいです。
以下の行を追加すると図のようにサイズと背景(水色部分)が設定できます。
fig = plt.figure(figsize=(5, 5), facecolor="lightblue")
figsize の単位はインチのようです。
import matplotlib.pyplot as plt
x = [i for i in range(10)]
y = [i for i in range(10)]
fig = plt.figure(figsize=(5, 5), facecolor="lightblue")
plt.grid(color="0.8")
plt.plot(x, y)
plt.show()
背景色が設定できるのはテンションが上がって、matplotlib を使うのが楽しくなります。
all_subplot
all_subplotを使うとfigureの中に複数の図を作れます。
以下を1行入れると2つ並べたりできます。
ax1 = fig.add_subplot(1, 2, 1)
(1, 2, 1)で設定します。
最初の(1,2)で行と列を設定してます。
ax1 = fig.add_subplot(1, 2, 1)
3つ目の数字は順番です。「1」が1つ目(左)、「2」が2つ目(右)です。
この場合は、右の図に青色をつけています。
import matplotlib.pyplot as plt
x = [i for i in range(10)]
y = [i for i in range(10)]
fig = plt.figure(figsize=(10, 5), facecolor="lightblue")
ax1 = fig.add_subplot(1, 2, 1)
ax1.plot(x, y)
ax2 = fig.add_subplot(1, 2, 2, facecolor="blue")
ax2.plot(x, y)
plt.show()
subplots
all_subplotとは別にsubplotsというのがあります。
使い方は似ていますが、多くのグラフを並べたい場合に良さそうです。
以下の行を追加します。
axes = fig.subplots(2, 3)
(2, 3)の部分で行と列を設定します。この場合は、2行3列です。
そして、以下の行でどの場所に表を作るのかを決めます。
axes[1, 1].plot(x, y)
左上から右に(0,0)(0,1)(0,2)となり、下の行は(1,0)(1,1)(1,2)となります。
import matplotlib.pyplot as plt
x = [i for i in range(10)]
y = [i for i in range(10)]
fig = plt.figure(tight_layout=True, figsize=(8, 5), facecolor="lightblue")
axes = fig.subplots(2, 3)
axes[1, 1].plot(x, y)
plt.show()
以上です。
figure、axes、subplotについてうまく説明できなかったので、もっと理解できたらリライトします。