LoginSignup
37
61

More than 5 years have passed since last update.

[python]グラフ描画のためのライブラリMatplotlibの使い方

Last updated at Posted at 2017-06-19

[参考]ゼロから作るDeep Learning(p130)

ディープラーニングの実験においては、
グラフ描画やデータの可視化が重要になる。
グラフ描画のためのライブラリMatplotlibを使えば、
簡単にグラフの描画やデータの可視化が簡単に行える。

Matplotlibの基本的な使い方。

「y=2x」を例に、描画のために以下のような値を指定する。

import numpy as np
import matplotlib.pyplot as plt

# 描画範囲の指定
# x = np.arange(x軸の最小値, x軸の最大値, 刻み)
x = np.arange(0, 6, 0.1)

# 計算式
y = 2 * x

# 横軸の変数。縦軸の変数。
plt.plot(x, y)

# 描画実行
plt.show()

以下のように描画出力される。

計算式を変えてみる

実際に「y=2x」以外の計算式をグラフ描画してみる。
コードの「#計算式」の部分を変えればグラフが変わる。

「y = 2 * (x**2)」の場合

import numpy as np
import matplotlib.pyplot as plt

x = np.arange(0, 6, 0.1)

# 計算式
y = 2 * (x**2)

plt.plot(x, y)
plt.show()

「y = sin(x)」の場合

# 計算式
y = np.sin(x)

描画範囲を変えてみる。

今までの例では、描画範囲をnp.arange(0, 6, 0.1)にした。
計算式はy=np.sin(x)で、描画範囲を変えてみる。

x軸(-12~+12)の範囲を描画する

x = np.arange(-12, 12, 0.1)

ちなみに、
arangeで指定する場合はy軸は値で自動で設定してくれるので、
計算式をy = 4 * np.sin(x)とするだけで、以下のようにy軸の範囲が広がる。

y軸の描画範囲を固定したい場合

以下のような実装だと、y軸はyの値によって変動する。

import numpy as np
import matplotlib.pyplot as plt

x = np.arange(0, 6, 0.1)
y = np.sin(x)
plt.plot(x, y)

plt.show()

y軸の範囲を固定したいときは、
ylimでy軸の描画範囲を指定する。
x軸の範囲を固定するxlimも用意されている。

import numpy as np
import matplotlib.pyplot as plt

x = np.arange(0, 6, 0.1)
y = np.sin(x)
plt.plot(x, y)

plt.ylim([-4,4])
plt.show()

刻みを変えてみる

以下のようなy=np.sin(x)を描画するとき、
np.arange(0, 6, 0.1)で描画範囲を指定していた。
arangeの第三引数で"数値の刻み"指定できる。
この例だと、0.1刻みで描画される。

import numpy as np
import matplotlib.pyplot as plt

x = np.arange(0, 6, 0.1)
y = np.sin(x)
plt.plot(x, y)
plt.show()

これを0.5刻みにすると以下のようになる。
角ばったような描画になる。

x = np.arange(0, 6, 0.5)

二つのグラフを描画するとき

sin関数とcos関数を同時に描画する。

import numpy as np
import matplotlib.pyplot as plt

# 描画範囲の指定
x = np.arange(0, 6, 0.1)

# 計算式
y1 = np.sin(x)
y2 = np.cos(x)

# グラフ描画設定
plt.plot(x, y1, label="sin") # y1グラフに、ラベル「sin」付与。
plt.plot(x, y2, linestyle="--", label="cos") # y2グラフに、ラベル「cos」付与。linestyleで線のスタイルを指定。
plt.xlabel("x") 
plt.xlabel("y")
plt.title('sin & cos')

# ラベルの描画
plt.legend()
# グラフの描画実行
plt.show()

37
61
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
37
61