リンク
matplotlibを使えばpythonで簡単にグラフを描画するすることが出来ます。以下matplotlibの使い方について、まとめます。
関数の描画
まずは、2次関数のグラフを描画します。 Jupyter Notebook を使う場合は先頭に
%matplotlib inline
と書く必要があります。
dxはxの離散間隔で小さくすればするほどなめらかなグラフが描けます。for文中でxを-10~10まで増加させていったときのx,yの値をlistに付け加えていきます。
import matplotlib.pyplot as plt x_list = [] y_list = [] dx = 0.01 for i in range(int(-10/dx),int(10/dx+1)): x = dx*i y = x**2 + x + 1 x_list.append(x) y_list.append(y) plt.plot(x_list,y_list,color ='b') plt.title('y=f(x)') # タイトル plt.xlabel('x') # x軸のラベル plt.ylabel('y') # y軸のラベル plt.show()
複数のグラフを重ねて表示
plt.plot()を複数書けばグラフを重ねて描画することが出来ます。label=' 'で凡例を指定できますが、そのときplt.legend()を書くようにしましょう。
import matplotlib.pyplot as plt import numpy as np x_list = [] y1_list = [] y2_list = [] dx = 0.01 for i in range(int(-3/dx),int(3/dx+1)): x = dx*i y1 = x**2 + x + 1 y2 = np.sin(x) x_list.append(x) y1_list.append(y1) y2_list.append(y2) plt.plot(x_list,y1_list,label = 'quadratic',color ='b') plt.plot(x_list,y2_list,label = 'sin',color ='r') plt.title('y=f(x)') # タイトル plt.xlabel('x') # x軸のラベル plt.ylabel('y') # y軸のラベル plt.legend() # 凡例を表示 plt.show()
複数のグラフを並べて描画
複数のグラフを並べて表示させることも出来ます。以下の例では縦に2列、横に3列のグラフを表示させます。そのままだとグラフが重なるのでplt.tight_layout()を入れると改善されます。
import matplotlib.pyplot as plt import numpy as np x_list = [] y1_list = [] y2_list = [] y3_list = [] y4_list = [] y5_list = [] y6_list = [] dx = 0.01 def f1(x): y = x**2 return y def f2(x): y = np.sin(x) return y def f3(x): y = x**3 return y def f4(x): e = 2.71 y = (e**x + e**(-x))/2 return y def f5(x): r = 3 if -r < x < r: y_p = (r**2-x**2)**(1/2) y_m = -(r**2-x**2)**(1/2) else: y_p = 0 y_m = 0 return y_p,y_m def f6(x): if x**2<9: y_p = abs(x)**(2/3)+(9-x**2)**(1/2) y_m = abs(x)**(2/3)-(9-x**2)**(1/2) else: y_p = 2 y_m = 2 return y_p,y_m for i in range(int(-3/dx),int(3/dx+1)): x = dx*i y1 = f1(x) y2 = f2(x) y3 = f3(x) y4 = f4(x) y5 = f5(x) y6 = f6(x) y1_list.append(y1) y2_list.append(y2) y3_list.append(y3) y4_list.append(y4) y5_list.append(y5) y6_list.append(y6) x_list.append(x) fig = plt.figure(figsize=(10,5)) plt1 = fig.add_subplot(2, 3, 1) plt1.plot(x_list,y1_list,color='b') plt1.set_xlabel('x') plt1.set_ylabel('y') plt1.set_title('f1') plt2 = fig.add_subplot(2, 3, 2) plt2.plot(x_list,y2_list,color='r') plt2.set_xlabel('x') plt2.set_ylabel('y') plt2.set_title('f2') plt3 = fig.add_subplot(2, 3, 3) plt3.plot(x_list,y3_list,color='y') plt3.set_xlabel('x') plt3.set_ylabel('y') plt3.set_title('f3') plt4 = fig.add_subplot(2, 3, 4) plt4.plot(x_list,y4_list,color='m') plt4.set_xlabel('x') plt4.set_ylabel('y') plt4.set_title('f4') plt5 = fig.add_subplot(2, 3, 5) plt5.plot(x_list,y5_list,color='g') plt5.set_xlabel('x') plt5.set_ylabel('y') plt5.set_title('f5') plt6 = fig.add_subplot(2, 3, 6) plt6.plot(x_list,y6_list,color='c') plt6.set_xlabel('x') plt6.set_ylabel('y') plt6.set_title('f6') plt.tight_layout() plt.show()
リンク
コメント