概要
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()でグラフを表示させている。