matplotlib は基本中の基本しかわかっていません。
matplotlib を調べていると figure と axes というものが出てきたので調べてみました。
以下のサイトに詳しくわかりやすく説明がありました。
figure と axes
figure と axes を調べてみると、figure は「図形」で、axes は「軸」でした。
そのまま翻訳するとよくわからないので、実際に表示してみます。
※axesはまだよくわかってません。
figure
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についてうまく説明できなかったので、もっと理解できたらリライトします。