【簡単python】複数のグラフを並べて描く

今回は複数のフラフを並べて書く方法を勉強します。

以下のイメージで書くを思えば簡単です。

一枚の紙を “plt.figure” を使って作成します
“subplot” でその紙をn等分(今回は4等分)します。
それぞれの領域に “plot” でグラフを書いていきます。

それでは以下のコードを実行してみましょう。

#numpyとmatplotlibをインポート
import numpy as np
import matplotlib.pyplot as plt

#各データ作成
x = np.linspace(0, 10, 1000)

y1 = np.sin(x)
y2 = np.sin(2*x)
y3 = np.sin(3*x)
y4 = np.sin(4*x)

#ラベル、変数等を作成
c1,c2,c3,c4 = 'red', 'blue', 'green', 'black'
l1,l2,l3,l4 = 'sin(x)', 'sin(2x)', 'sin(3x)', 'sin(4x)'

xl = 'x'
yl = 'y'


#グラフを表示する領域を,figオブジェクトとして作成。
fig = plt.figure(figsize = (12,6), facecolor="lightgray",tight_layout=True)

#グラフを描画するsubplot領域を作成。
ax1 = fig.add_subplot(2, 2, 1)
ax2 = fig.add_subplot(2, 2, 2)
ax3 = fig.add_subplot(2, 2, 3)
ax4 = fig.add_subplot(2, 2, 4)

#各subplot領域にデータをプロット。
ax1.plot(x, y1, color=c1, label=l1)
ax2.plot(x, y2, color=c2, label=l2)
ax3.plot(x, y3, color=c3, label=l3)
ax4.plot(x, y4, color=c4, label=l4)

#各subplotにxラベルを追加。
ax1.set_xlabel(xl)
ax2.set_xlabel(xl)
ax3.set_xlabel(xl)
ax4.set_xlabel(xl)

#各subplotにyラベルを追加。
ax1.set_ylabel(yl)
ax2.set_ylabel(yl)
ax3.set_ylabel(yl)
ax4.set_ylabel(yl)

#各subplotに凡例を表示。
ax1.legend(loc = 'upper right') 
ax2.legend(loc = 'upper right') 
ax3.legend(loc = 'upper right') 
ax4.legend(loc = 'upper right') 

plt.show()

どうでしょうか?描けましたか?

このような方法をオブジェクト指向というようです。それぞれのグラフをオブジェクトとして扱ったというイメージです。オブジェクト指向を学ぶと、大きなプロブラムも簡潔に(わかりやすく)書くことができるようになります。次回はオブジェクト指向について勉強していきたいと思います。

タイトルとURLをコピーしました