前回はJupyter Notebookの基本的なグラフ描写方法を学習しましたが、今回は前回のグラフをベースにグラフの装飾を行います。
グラフの装飾
グラフの描写自体は前回でできるようになりましたが、今後様々なグラフ描写や対外的に見せる場合に見やすいようにグラフの装飾方法を学びます。
関数の変化を描写する
関数の変数による変化ではなく、関数自体が変化した場合にグラフがどのような変化していくのかを描写してみます。
そのために前回作成した関数に引数を追加し、関数を修正します。
# 関数の定義 def f(x,w): return x*(x-w)*(x+2)
複数のグラフを描写する場合には、複数回プロットにグラフ情報を設定すればOK。X値は基本的に共通で使用しY値は関数により変化させる点にだけ注意。
・例
# ライブラリのインポート import numpy as npy import matplotlib.pyplot as plt # Jupiter Notebookで結果を表示するためのおまじない %matplotlib inline # 関数の定義 def f(x,w): return x*(x-w)*(x+2) # X軸に0から9までの配列 xline = npy.linspace(-5,5,50) yline1 = f(xline,1) yline2 = f(xline,2) # pltに要素を設定する plt.plot(xline, yline1) plt.plot(xline, yline2) # グラフを描写する plt.show()
・出力結果
関数の表示を装飾する
複数のグラフ表示は可能になりましたが、グラフ表示されるがままに表示されていました。
まぁ実践的にグラフの内容を確認するにはやや不格好なのです。
■グラフの色を変える
グラフの色を変えるにはプロットを設定する際に「color」の指定を行います。
・色をつける
plt.plot(xline, yline1, color='black')
またRBG値での設定も可能なようです。
・RBGで指定
plt.plot(xline, yline1, color='#20B2AA')
■グラフに名前をつける
グラフに名前をつけるにはプロットを設定する際に「label」の指定を行います。
また、名前をつけただけではグラフ上に名前が現れないため、別途凡例を表示させる必要があります。
・名前をつける
plt.plot(xline, yline1, label='$w=1$')
・凡例を表示させる
plt.legend(loc="upper left")
「loc」はロケーションでしょう、今回は左上に表示を想定しています。
・y軸の表示範囲設定
表示範囲の指定するにはプロットに「ylim」を下限と上限を設定します。
plt.ylim(-15, 15)
・タイトルに設定する
グラフにタイトルを設定するにはプロットに「title」を設定します。
plt.title('$SampleGraph$')
・軸に名前を設定する
軸に名前を設定するにはプロットに「xlabel」を設定します。y軸も同様です。
plt.xlabel('$x$') plt.ylabel('$y$')
・グラフにグリッドを表示する
グラフにグリッドを表示するにはプロットに「grid」を設定します。デフォルトではfalseになっているようです。
plt.grid(True)
上記の装飾を実際にグラフ化してみます。
・例
# ライブラリのインポート import numpy as npy import matplotlib.pyplot as plt # Jupiter Notebookで結果を表示するためのおまじない %matplotlib inline # 関数の定義 def f(x,w): return x*(x-w)*(x+2) # X軸に0から9までの配列 xline = npy.linspace(-5,5,50) yline1 = f(xline,1) yline2 = f(xline,2) # pltに要素を設定する plt.plot(xline, yline1, color ='black', label='$w=1$') plt.plot(xline, yline2, color ='#20B2AA', label='$w=2$') # 凡例を表示する plt.legend(loc="upper left") # y軸の表示範囲を設定する plt. ylim(- 50, 50) # タイトルを表示する plt.title('$SampleGraph$') # X軸に名前を付ける plt.xlabel('$x$') # Y軸に名前を付ける plt.ylabel('$y$') # グリッドを表示する plt.grid(True) # グラフを描写する plt.show()
・出力結果
かなりそれっぽいグラフになってきました。
複数のグラフを並べて表示する
複数グラフの表示
今回の複数のグラフというのは、一つに並べずに複数の枠を表示させることです。
「plt.subplot()」を使用します。第一引数に縦の個数、第二引数に横の個数、第三引数に範囲上の何番目に表示するかを指定します。
・例
# ライブラリのインポート import numpy as npy import matplotlib.pyplot as plt # Jupiter Notebookで結果を表示するためのおまじない %matplotlib inline # 関数の定義 def f(x,w): return x*(x-w)*(x+2) # X軸に0から9までの配列 xline = npy.linspace(-5,5,50) # グラフのサイズを指定する plt.figure(figsize=(15,5)) # グラフ間の間隔を設定する plt.subplots_adjust(wspace=0.5,hspace=0.5) for i in range(6): plt.subplot(2,3,i + 1) plt.title(i + 1) plt.plot(xline, f(xline, i)) plt.ylim(-50, 50) plt.grid(True) plt.show()
・出力結果
これで様々な表示方法に対応できるようになりました。