0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

機械学習のお勉強〜matplotlib編〜

Last updated at Posted at 2020-04-05

#機械学習のお勉強〜matplotlib編〜

今回はmatplotlibの勉強をしたのでそのアウトプットをします。

##1.matplotlibとは?

データの可視化をしてくれる外部ライブラリです。
numpy,pandasと同様Pythonには最初は入ってないけどAnacondanには最初からインストールされています。

##2.データの可視化をすると何がいいの?

外れ値を素早く見つけることができます。

例えばお菓子の値段の統計を取っていたとします。
1個100円前後のお菓子の中に1個1万円のお菓子のデータがあったらおかしいですよね?
そのおかしいデータを瞬時に見つけるのはとても難しいですが、グラフなどでデータを可視化することで瞬時に見つけることができます。

ここ1つだけ変な点があるなぁ?ってなります(笑)

##3.基本的な使用方法

###インポート

test.ipynb
#matplotlibのインポート
import matplotlib.pyplot as plt
%matplotlib inline

上記を実行しましょう。
%matplotlib inlineはJupyterNotebookで使うときだけ使用しましょう。
今回はpyplotの機能だけ使うのでpyplotだけインポートします。

###グラフの描画

test.ipynb
#グラフのサイズの設定(4×4)
plt.figure(figsize=(4,4))
#グラフの作成
plt.plot([1,2,3,4,5],[6,7,8,9,10],label='test')
#x軸の名称
plt.xlabel('x軸')
#y軸の名称
plt.ylabel('y軸')
#グラフタイトル
plt.title('タイトル')
#上記凡例をグラフに反映
plt.legend()
#グラフを表示
plt.show()

基本的な関数は上記。
plt.show()に関しては記載しなくてもグラフは表示するので好みでどうぞ。

xの2乗のグラフを記載するなら、、、

test.ipynb
import numpy as np

#1~10の配列をxに代入
x = np.arange(0,11,1)
#yの値をxの2乗にする
y = x ** 2
plt.plot(x,y,label='y = x^2')
#x軸の名称
plt.xlabel('x軸')
#y軸の名称
plt.ylabel('y軸')
#グラフタイトル
plt.title('y = x^2')
#上記凡例をグラフに反映
plt.legend()
#グラフを表示
plt.show()

これで出来ます。

###複数のグラフを表示する。

次に複数のグラフを表示する方法を記載します。

test.ipynb
#2行2列 トータルのサイズが8×8のグラフを作成
fig,ax = plt.subplots(2,2,figsize=(8,8))
#x,y,zの範囲を設定
x = np.arange(0,11,1)
y = x ** 2
z = x ** 3
#グラフの作成
ax[0,0].plot(x,x,label='x = x',color='red')
ax[0,1].plot(x,y,label='y = x^2'),color='green')
ax[1,0].plot(x,z,label='z = x^3'),color='blue')

#グラフの設定
for i in range(2):
  for j in range(2):
    ax[i,j].set_xlabel('x軸')
    ax[i,j].set_ylabel('y軸')
    ax[i,j].legend()

plt.tight_layout()

figに全体のサイズに縦横8サイズのグラフを作成
その中に縦横2サイズのグラフを4つ作成しています。

tight_layout関数は、グラフ同士被らないようにする関数です。

###その他グラフの作成

これまでは棒グラフのみでしたが他のグラフももちろん作成できます。

test.ipynb
#円グラフ
plt.pie()
#ヒストグラム
plt.hist()
#散布図
plt.scatter()

引数は割愛していますが、円グラフ、ヒストグラムは各データの割合や推移
散布図は組データの確認に使うので興味があれば調べてみてください!

#4.まとめ

機械学習これまでやってきましたが楽しいです!
普段こういういろいろなことが可能な言語をしてきていなかったため、出来ることが多いのはいいなぁ・・・ってなります。
明日以降もアウトプットに投稿しますが、拙くなってしまうのは見逃してください・・・

以上

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?