グラフを複数表示させる

グラフを複数表示させる #

グラフを複数表示するにはpyplotの関数subplotを使う。

subplot(nrows, ncols, index)

subplotを使うと縦nrows×横ncolsのマスにグラフを複数並べて表示できる。 場所の番号は左上から1,2,3..となっており、グラフをsubplotで表示させたい位置を引数indexに指定する。

実行例を以下に示す。

>>> import numpy as np
>>> import matplotlib.pyplot as plt
>>> 
>>> def f(x,w):
...     return (x-w)*x*(x+w)
... 
>>> x = np.linspace(-3,3,61)
>>> 
>>> #subplotで表示する各グラフ間の間隔を指定する
>>> #wsapceは横間隔、hspaceは縦間隔
>>> plt.subplots_adjust(wspace=0.5,hspace=1.0)
>>> 
>>> #w:0~5でグラフ作成して表示
>>> for i in range(6):
...     plt.subplot(2,3,i+1)
...     plt.title(i+1)
...     plt.plot(x,f(x,i))
...     plt.ylim(-20,20)
...     plt.grid(True)
... 
<matplotlib.axes._subplots.AxesSubplot object at 0x11bb4f2e8>
Text(0.5, 1.0, '1')
[<matplotlib.lines.Line2D object at 0x11bb57ba8>]
(-20, 20)
<matplotlib.axes._subplots.AxesSubplot object at 0x11aa58b00>
Text(0.5, 1.0, '2')
[<matplotlib.lines.Line2D object at 0x11aa75c50>]
(-20, 20)
<matplotlib.axes._subplots.AxesSubplot object at 0x11aa58e10>
Text(0.5, 1.0, '3')
[<matplotlib.lines.Line2D object at 0x11aaaf5f8>]
(-20, 20)
<matplotlib.axes._subplots.AxesSubplot object at 0x11aa947b8>
Text(0.5, 1.0, '4')
[<matplotlib.lines.Line2D object at 0x11aae6f60>]
(-20, 20)
<matplotlib.axes._subplots.AxesSubplot object at 0x11aad0160>
Text(0.5, 1.0, '5')
[<matplotlib.lines.Line2D object at 0x11ab1f908>]
(-20, 20)
<matplotlib.axes._subplots.AxesSubplot object at 0x11ab01ac8>
Text(0.5, 1.0, '6')
[<matplotlib.lines.Line2D object at 0x11ab592b0>]
(-20, 20)
>>> 
>>> plt.show()
>>> 

実行結果