edo1z blog

プログラミングなどに関するブログです

Python - matplotlibの使い方

matplotlibは、pythonでグラフとかかけるやつです。インストールは、ここに説明があります。ギャラリーみるとかなり色々なグラフをかけるようです。使い方のドキュメントはここです。

グラフを書いてみる

plot()でプロットできます。引数は1つだとyだけ、2つだと、x,yの順になるみたい。ylabelとかでラベルも設定できる。show()で表示することができる。

import matplotlib.pyplot as plt
plt.plot([1,200,3, 100, 30], [2, 4, 6, 9, 20])
plt.ylabel('hogehoge')
plt.show()

g1

参考:matplotlib入門

numpyと一緒につかってサインコサインとか簡単にかけるらしい。

import numpy as np
import matplotlib.pyplot as plt
x = np.arange(-3, 3, 0.1)
y = np.sin(x)
plt.plot(x, y)
plt.show()

g2

np.arangeで、-3から3までを0.1間隔でつくってる。np.sin(x)とやると、xに入ってる要素に応じた結果が配列で返ってくる。1次関数を簡単に書く方法はないのでしょうか?たとえば、y = 3x + 3という数式を入れたらパッと表示されるとか。できた。numpy便利だな。

1次関数

x = np.arange(0, 3, 0.1)
y = 2 * x + 5
plt.plot(x, y)
plt.show()

g3

2次関数

x = np.arange(-10, 10, 0.1)
y = 2 * x**2 + 3 * x - 4
plt.plot(x, y)
plt.show()

g4

3次関数

x = np.arange(-10, 10, 0.1)
y = 3 * x**3 + 2 * x**2 + 3 * x - 4
plt.plot(x, y)
plt.show()

g5

4次関数

x = np.arange(-10, 10, 0.1)
y = 4*x**4 + 3*x**3 + 2*x**2 + x + 5
plt.plot(x, y)
plt.show()

g6

散布図

散布図は、plot(x, y, 'o')といった感じで、第三引数に文字いれればできる。文字はなんでもいいわけではなく、決まりがある。o(オー)だと〇とか。roとやると赤い〇になる。dとか1とかも使えた。

x = np.arange(-10, 10, 0.5)
y = 3 * x + 5 + np.random.randn(40) * 5
plt.plot(x, y, 'rd')
plt.show()

g7