SEワンタンの独学備忘録

IT関連の独学した内容や資格試験に対する取り組みの備忘録

【Python】入門⑥ Pythonでグラフを扱う その2(グラフの様々な描写方法)

前回はJupyter Notebookの基本的なグラフ描写方法を学習しましたが、今回は前回のグラフをベースにグラフの装飾を行います。

www.wantanblog.com

グラフの装飾

グラフの描写自体は前回でできるようになりましたが、今後様々なグラフ描写や対外的に見せる場合に見やすいようにグラフの装飾方法を学びます。

関数の変化を描写する

関数の変数による変化ではなく、関数自体が変化した場合にグラフがどのような変化していくのかを描写してみます。

そのために前回作成した関数に引数を追加し、関数を修正します。

# 関数の定義
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()

・出力結果

f:id:wantanBlog:20191124012424p:plain

関数の表示を装飾する

複数のグラフ表示は可能になりましたが、グラフ表示されるがままに表示されていました。
まぁ実践的にグラフの内容を確認するにはやや不格好なのです。

■グラフの色を変える
グラフの色を変えるにはプロットを設定する際に「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()

・出力結果

f:id:wantanBlog:20191124021812p:plain


かなりそれっぽいグラフになってきました。

複数のグラフを並べて表示する

複数グラフの表示

今回の複数のグラフというのは、一つに並べずに複数の枠を表示させることです。
「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()

・出力結果

f:id:wantanBlog:20191124024232p:plain


これで様々な表示方法に対応できるようになりました。