概要
pyplotのみを使った基本的なグラフの描画方法。一般的にはmatplotlib.pyplot
をplt
というエイリアスでインポートする。
この例では、pyplotの関数のみを用いて1つのグラフに2つの曲線を描画し、タイトルや軸ラベル、凡例などを追加している。
また、軸目盛の間隔を設定したり、グリッドを描かせたりしている。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
import numpy as np import matplotlib.pyplot as plt x = np.linspace(-np.pi, np.pi, endpoint=True) y1 = np.sin(x) y2 = np.cos(x) plt.title("sine & cosine curve") plt.xlabel("angle") plt.ylabel("sin/cos") plt.xlim(-np.pi, np.pi) plt.ylim(-1, 1) plt.xticks([-np.pi, -np.pi/2, 0, np.pi/2, np.pi]) plt.yticks(np.linspace(-1, 1, num=5, endpoint=True)) plt.grid(True) plt.plot(x, y1, label="sin(x)") plt.plot(x, y2, label="cos(x)") plt.legend(loc="upper left") plt.show() |
実行結果は以下の通り。
ライブラリーのインポート
1 2 |
import numpy as np import matplotlib.pyplot as plt |
グラフ描画のためのパッケージ、matplotlob.pyplot
をplt
としてインポートしている。また、関数描画のためにnumpy
もnp
としてインポート。
描画する関数
1 2 3 |
x = np.linspace(-np.pi, np.pi, endpoint=True) y1 = np.sin(x) y2 = np.cos(x) |
ここではpyplot
のplot()
で描画するため、2つの三角関数を準備している。
x
の値は共通で、numpy.linspace()
で−π~+πの間で等間隔にデフォルトの50個の点を準備。endpoint=True
で終端の点も含めている。
そのx
の値に対して、sin、cosの関数の値をy1
、y2
に保存。numpy.linspace()
から得られるx
や、それに対してNumpy
のユニバーサル関数で計算されるy1
、y2
はndarray
。
各種設定
タイトルと軸ラベル
1 2 3 |
plt.title("sine & cosine curve") plt.xlabel("angle") plt.ylabel("sin/cos") |
pyplot.title()
の引数でグラフのタイトル、pyplot.xlabel()
とpyplot.ylabel()
の引数でx軸とy軸のラベルを設定している。
軸の範囲
1 2 |
plt.xlim(-np.pi, np.pi) plt.ylim(-1, 1) |
pyplot.xlim()
とpyplot.ylim()
で、それぞれの軸の下限値と上限値を設定している。x軸については−π~+πとしている。
軸目盛
1 2 |
plt.xticks([-np.pi, -np.pi/2, 0, np.pi/2, np.pi]) plt.yticks(np.linspace(-1, 1, num=5, endpoint=True)) |
pyplot.xticks()
、pyplot.yticks()
の引数で、軸目盛に表示する値を設定している。引数は、表示させたい軸の値をリストとして与える。
x軸については−π、−π/2、0、π/2、πの値を直接与え、y軸についてはnumpy.linspace()
関数で、-1~+1の間で等間隔な5点(-1、-0.5、0、0.5、1)を計算している。
グリッド(補助線)
1 |
plt.grid(True) |
グラフの描画エリア内に、軸目盛に対応した細い補助線を描くため、pyplot.grid()
の引数をTrue
で指定している。
グラフの描画
1 2 |
plt.plot(x, y1, label="sin(x)") plt.plot(x, y2, label="cos(x)") |
pyplot.plot()
の引数にx
とy1
及びy2
を指定してグラフを描いている。2つのplot()
関数を書くことで、関数は重なって描かれる。
それぞれのグラフに対してlabel
引数を指定していて、それらは凡例表示に使われる。
凡例の表示
1 |
plt.legend(loc="upper left") |
pyplot.legend()
で凡例を設定している。
凡例にはpyplot.plot()
で指定したラベルが使われるため、pyplot.legend()
はpyplot.plot()
の後に書かなければならない。
また、凡例の表示位置をloc引数で指定していて、この場合は左上に凡例が表示される。凡例の位置は、upper/lower
とleft/right
をスペースで繋いだ文字列で指定。
グラフの表示
1 |
plt.show() |
pyplot.show()
でグラフを表示させている。