Python 入門 複数のグラフを描画 matplotlib.pyplot.subplot

こんにちは。レモンティーです。

今回は複数のグラフを描画します。

こういうのですね。
f:id:sawalemontea:20180312231842p:plain

使うのは
matplotlib.pyplotのsubplot(a,b,n)です。

subplot(a,b,n)

これで縦a、横bに分割したときのn番目のマスに
グラフを描画できます。
(このnは1から数えるので注意です。0はエラーになります。)

使う際には

import matplotlib.pyplot as plt
%matplotlib inline

でインポートして

for i in range(4):
    plt.subplot(2,2,i+1)
    plt.plot(x,f3(x,i))

このように使ったりします。
これだとiの値を1づつ変化させたときのグラフを
並べて表示できます。(f3は自分で定義した適当な関数です。)
先ほども言いましたが3番目の引数は1からなのでiに1足しています。

グラフの大きさなども調節できます。

全体の大きさ
plt.figure(figsize=(10,5))

隣り合うグラフの間隔
plt.subplots_adjust(wspace=0.5,hspace=0.5)

各グラフのタイトル
plt.title(i)

各グラフに格子を表示するかどうか
plt.grid(True)


ですので例えばこれだと…

import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline

def f3(x,i):
    return (x - 5)*(x - i)*(x + 3)

x = np.linspace(-5,5,20)
plt.figure(figsize=(10,5))
plt.subplots_adjust(wspace=0.5,hspace=0.5)

for i in range(4):
    plt.subplot(2,2,i+1)
    plt.plot(x,f3(x,i))
    plt.title(i)
    plt.grid(True)

plt.show()

こんな感じになります。
f:id:sawalemontea:20180312231842p:plain



今回はこれでおしまいです。
sawalemounity.hatenablog.com