文系エンジニア大学生の技術ブログ

主にエンジニア向けにITやプログラミングなどの技術系と大学生向けに休学、留学、海外生活、トビタテ留学、長期インターンに関する記事を書いています。

matplotlibの基礎を確認しながらグラフを描画してみたよ

<

f:id:daikiyano:20181223105709p:plain 画像出典:Matplotlib: Python plotting — Matplotlib 3.0.2 documentationより引用

今回は、pythonの外部モジュールであるmatplotlibの基礎を学びながらグラフの描画の仕方について確認していきます。

matplotlibとは?

Matplotlib: Python plotting — Matplotlib 3.0.2 documentation

matolotlibとはプログラミング言語であるPythonと計算ライブラリであるNumpyのためのグラフ描画ライブラリです。matolotlibを利用することにより、グラフの描画や画像の表示、アニメーションの作成などを行うことが可能です。 人工知能を扱う際はデータを可視化することが大切になります。そのため、機械学習、深層学習を学習する方はmatplotlibの使い方を知る必要があります。

matplotlibを使用する際はNumPyと組み合わせ使うためNumPyを知らない方は以下の記事も参照してみてください。

www.for-engineer.life

NumPyとmatplotlibでグラフを描画するよ。

まずは、Numpyの時と同様にmatplotlibのpyplotというモジュールをインポートします。

コードを書いていく際にいちいちnumpy 、matplotlibと記載するのは面倒なので、 インポートする際にnp、pltと略して使うのが通例です。 また、Jupyter notebookでmatplotlibを使用する際は先頭に %matplotlib inlineを記載する必要があります。

%matplotlib inline
import numpy as np #numpyをインポート
import matplotlib.pyplot as plt

linspace関数

グラフを描画するために今回はlinspace関数を使用します。 linspace関数を使うと指定した範囲の数字を50等間隔に区切ることができます。

  • linspace関数・・・指定した数字の範囲の中で50等間隔に区切ってくれる。

区切られた数字はNumpyの配列になります。

import numpy as np

x = np.linspace(0, 10)  #0〜10を50等間隔に区切る。

print(x)
print(len(x))  

今回は数字の範囲を1〜10とします。 これをlinspace関数を利用して結果をprintで表示させると以下のように50等間隔に区切られNunPyの配列になります。

[ 0.          0.20408163  0.40816327  0.6122449   0.81632653  1.02040816
  1.2244898   1.42857143  1.63265306  1.83673469  2.04081633  2.24489796
  2.44897959  2.65306122  2.85714286  3.06122449  3.26530612  3.46938776
  3.67346939  3.87755102  4.08163265  4.28571429  4.48979592  4.69387755
  4.89795918  5.10204082  5.30612245  5.51020408  5.71428571  5.91836735
  6.12244898  6.32653061  6.53061224  6.73469388  6.93877551  7.14285714
  7.34693878  7.55102041  7.75510204  7.95918367  8.16326531  8.36734694
  8.57142857  8.7755102   8.97959184  9.18367347  9.3877551   9.59183673
  9.79591837 10.        ]
50

続いてlinspaceで区切った数値に2をかけてy座標の数値を作成します。 y = 2 * xでy座標の値を出します。

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(1, 10) 
y = 2 * x  

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

f:id:daikiyano:20181222222823p:plain

グラフにラベルやタイトルを挿入

続いて、グラフにラベルやタイトルなどを挿入していきます。

  • plt.xlabel ・・・ X軸のラベル名
  • plt.ylabel ・・・ Y軸のラベル名
  • plt.title ・・・ グラフのタイトル
  • plt.legend() ・・・ 凡例を表示
  • plt.show()・・・グラフの表示
import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 10)
y1 = 2 * x
y2 = 3 * x

plt.xlabel("date")
plt.ylabel("PV")

plt.title("title")

plt.plot(x, y1, label="A blog")
plt.plot(x, y2, label="B blog", linestyle="dashed")
plt.legend() 

plt.show()

再度、plt.show()を使ってグラフを表示させます。 グラフの結果は以下のようになります。

f:id:daikiyano:20181222230112p:plain

linestyleなどを使用することにより線の種類や太さを選択することができます。 興味のある方は以下のサイトを参照してみてください。

python.atelierkobato.com

機械学習、深層学習を学習していく上で線形代数やベクトルなどの数学の知識を学ぶ必要があります。 高校数学のテストのように紙に書いて計算していく必要はなくても、Numpyを活用しながら基礎的な数学を学習することがAI学習に向けての第一歩になりそうです。

www.for-engineer.life

www.for-engineer.life

www.for-engineer.life