Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

[参考]ゼロから作る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()

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away