【初心の数学2】グラフを使って楽しく勉強!matplotlibを使いこなそう1

【初心の数学2】グラフを使って楽しく勉強!matplotlibを使いこなそう1

 

キーンコーンカーンコーン

ガラッ

はーい授業はじめるぞ~
席に座れ~

は~い静かにしなさい。

静かにしなさ~い。

静・か・に!

 

・・・ハイ

静かになるまで、先生30秒待ちました。

休み時間に授業の準備をしておくように。

 

今日から皆さんの人工知能に特化した算数・数学を担当します。

アイーンです。よろしく。

アイーン先生と呼ぶように。

 

ハイ今日はね

皆が数学を楽しく勉強するのに必要なのはなにか。

先生考えてきました。

それは目で見て理解することだと、先生思います。

じゃあ目で見るためにはどうすればいいのか。

描けばいいじゃない!

 

というわけで

今回から2回、matplotlib(マットプロットリブ)を使ってグラフを描く方法から勉強しましょう。

 

山田!エ~とか言わない!

はい始めるよ~

 

matplotlibとは?

matplotlibってのは、グラフを描くときなんかによく使われるPythonの標準的なライブラリだ。

numpyとの親和性も高いから、みんな覚えとくように。

 

面白いぞ、matplotlibを使いこなせば

 

こんなのとか・・・

 

こんなのや

 

こ~んなグラフが掛けるんだ!

 

ちょっとテンション上がったか?

まぁ今日は最初の一歩から書いていこう。

 

は~い、PyCharm開いて~。

・・・なんだ山田、PyCharm忘れたのか?

じゃあ隣の人に見せてもらっとけ。

 

 

matplotlibを使う準備

じゃあ準備しろ~

NewProject して

名前?なんでもいいが、じゃあmath1としとくか。

Projectを右クリックして

New ー Python File を開いて

math1って名前にしとくか。OKでファイルが出来るぞ。

 

 

そしたら一番上に

import matplotlib.pyplot as plt
import numpy as np

って書いとけ~。

 

書けたか~?

これはmatplotlibとnumpyを使う準備だ。

机に道具を出す感覚だな。

ここはどの授業でも使うから、ノート書いとけよ。

 

じゃあ早速グラフ書いてみるぞ~。

 

グラフの書き方(例:一次関数)

じゃあ一次関数のグラフを描いてみよう。

\(y = ax + b\)

一次関数の頻出する例だ。覚えとけ~。

aとbは定数(決まった数値)です。

例えば、パン屋さんだったら

家賃”は基本的には毎月同じだろ?

それが定数だ。

 

逆にあるのが”変数”だ。

状況に応じて、値が変わる数値の事をいう。

 

パン屋さんなら

“機械の電気代”、”小麦粉の価格”

“主人の夢に着いてきてくれた奥さんに注ぐ愛情”

ここらへんが下手すれば毎日変わる。

これが変数だ。

 

\( y = 2x + 1\)

今回は、これをmatplotlibでグラフにして見てみよう。

 

一次関数の「一次」ってのは

変数(\( y = 2x + 1 \)の場合は、\(x\)が変数)の”次数”が1であるってことだ。

次数は普通右上に付く。

\(x^2\)とかだ。

何もついてないヤツは\(x×1\)と同じだ。なにも変わらない。

 

つまり、”式に入ってる変数の値が最高で何乗か”(\(x\)を掛けた回数)ってことになるな。

\(y = x^2\)だと二次関数だ。

 

def ichizi(x):
    y = 2 * x + 1
    return y

プログラミングの関数で\(y = 2x +1\)を書くとこうなる。

print(ichizi(1))と書いて、\(x\)に1を入れると

3と表示されるぞ。

 

これをmatplotlibで書くと・・・

x = np.linspace(-1,1,10)

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

xにー1から1までの10個を入れたリストを作る。

そして

plt.plot()にリストxと関数ichizi(x)を入れてやる。

plt.show()で画面出力だ。

 

じゃあ実行してみよう。

実行の仕方

先生の別の授業受けてた人は聞き流せ~。

 

実行するときは 

こうしてこうだ。

もう解説しないぞ~。

 

じゃあどうなったか。

 

こんなのが別画面に出るはずだ。

\(x\)にー1から1が入ったときの数値の変化がグラフで出てくるぞ。

できたか~?

ついでだから、二次関数も出してみるぞ。

 

グラフの書き方(例:二次関数)

 

def nizi(x):
    z = x ** 2
    return z
plt.plot(x,nizi(x))
plt.show()

関数を追加して、plt.plot()を書き換えた。

こうすると・・・

 

こうなる。

いいか~、関数の特徴として

一次関数は直線

二次関数以降は曲線

の形をとる。

どうだ?描いてみたら一目瞭然だろ?

 

ん?なんだ山田。

グラフが見づらい?

ならキレイに見やすくしてみようか。

 

グラフの修飾

はーいじゃあコード書いてくぞ~

x = np.linspace(-1,1,10)

plt.plot(x,ichizi(x),color="blue", label="$ichizi$")
plt.plot(x,nizi(x),color="red", label="$nizi$")
plt.legend(loc="upper left")
plt.ylim(-0.5,0.5)
plt.title("ichizi & nizi")
plt.xlabel("$x$")
plt.ylabel("$y$")
plt.grid(True)

plt.show()

こんな感じだ。変えたとこは赤くしたぞ。

plt.plot(x,ichizi(x),color=”blue”, label=”$ichizi$”)
plt.plot(x,nizi(x),color=”red”, label=”$nizi$”)

colorで色指定、labelで線を分かりやすく分けられるぞ。

以下は

plt.legend(loc=”upper left”)
ラベルの位置指定

plt.ylim(-0.5,0.5)
縦軸の範囲指定

plt.title(“ichizi & nizi”)
タイトルの設定

plt.xlabel(“$x$”)
横軸のラベル

plt.ylabel(“$y$”)
縦軸のラベル

plt.grid(True)
グリッド線を引くか

という設定になっている。

分からないところは、後で学年主任のグーグル先生に聞くように。

これを実行すると・・・

こんな感じになる。

できたか山田。

・・・山田?

・・・山田!

山田ああぁぁぁ!

 

まとめ

今日の授業はmatplotlibを使えるようにするための授業だ。

別の数字を突っ込んだり、関数を作ってみたりして

どんなグラフになるか、各自いろいろ試してみるように。

 

は~い今日はここまで。

先生この後、山田の家にご挨拶行かないといかんから。

次の授業は3次元のグラフとかの表示方法をやるぞ。

 

それでは日直号令!

・・・

はい、ありがとうございました~。

ガラガラッ