機械学習入門!色んなグラフをmatplotlib.pyplotで作ってみよう!

matplotlibはPythonのグラフ作成・可視化用ライブラリです。matplotlibはPythonのデファクトスタンダードの可視化ライブラリとしての地位を築いていて、Pythonでグラフを作りたいならまず学んでおきたいものです。

matplotlibには色んな機能がありますが、

  • 入れ子構造のグラフを作るsubplot
  • アニメーションを作るanimation

については別の記事で紹介します。

この記事では、matplotlib.pyplotについてご紹介します。

  • matplotlib.pyplotとは?
  • どんなグラフが作れるの?

という内容についてまとめました。この記事でmatplotlibに入門しましょう!

目次

matplotlib.pyplotとは

matplotlib_plot_1

引用元:matplotlib https://matplotlib.org/

matplotlib.pyplotは、matplotlibパッケージの中のモジュールの一つです。グラフを作るためのインターフェイスが集まっています。

基本的には

import matplotlib.pyplot as plt

としてimportして使います。様々な形のグラフを作る機能が入っているので、大体の場合このモジュールでほしいグラフが作れるはずです!

matplotlib.pyplotで作れるグラフ

matplotlib_pyplot_3

pyplotで作れるグラフを確認していきましょう。この記事で紹介しているコードは全て、jupyter notebook/labで試しました。以下のコードをjupyter上で実行しながら読み進めてください。

最もシンプルなプロット

まずはもっと簡単なグラフを作ってみましょう。plt.plot関数を使えば簡単にグラフが作れます!

import matplotlib.pyplot as plt
import numpy as np

y = np.random.rand(100)
x = np.linspace(1, 5, 100)

plt.plot(y)

plt1

plt.plot関数では、x軸を省略することができます。その場合与えられたデータはy軸のものとしてグラフが作られます。

ですがこれでは物寂しいですね。次はグラフのタイトルと、今表示されているグラフに名前(ラベル)をつけてあげましょう。

# グラフにラベルを付けてみる

plt.plot(x,y, label="random data")

plt.xlabel("time series")
plt.ylabel("power")

plt.title("sample graph")

plt.legend()

plt2

plt.plotのlabel引数に文字列を与えると、これがこのグラフのラベルになります。

また、xlabel、ylabelは軸の名前です。titleは文字通りグラフのタイトルを決め、最後にplt.legend()でここまでに追加したグラフの付属情報をプロットに反映します。

複数のグラフを表示したい

一つの枠の中に、複数のグラフを表示したい場合があります。これをpyplotで試してみましょう。

x = np.linspace(0, 5*np.pi, 100)

y_sin = np.sin(x)
y_cos = np.cos(x)

plt.plot(x, y_sin, label="sin curve")
plt.plot(x, y_cos, label="cos curve")

plt.legend()

plt3

追加したいグラフの分だけ、plt.plot関数を書いてあげれるだけでOKです。ここではsin波とcos波をプロットしてみました。

散布図

散布図はscater plotと良い、これもpyplotで簡単に使えます。plt.scatter関数を試してみましょう。

x = np.random.randn(50)
y = np.random.randn(50)
plt.scatter(x,y)

plt4

もちろんこれでも複数のグラフを表示できます。例えば2つのクラスがある場合、一つづつplt.plotしていけば下のようなグラフが作れます。

x1 = np.random.randn(50)
y1 = np.random.randn(50)
plt.scatter(x1,y1, label="x1")

x2 = np.random.randn(50)
y2 = np.random.randn(50)
plt.scatter(x2,y2, label="x2")

plt5

ここではplt.legend()をしていません。なのでせっかくつけたlabelが表示されていませんね。

円グラフ

円グラフも作ってみましょう。plt.pie関数でできます。x軸にあたるところには、数値型以外のリストを渡しても大丈夫です。

x = np.array([10, 5,3, 12,6,4])

cate = ["A","B","C", "D", "E", "F"]
plt.pie(x, labels=cate)

plt6

棒グラフ

棒グラフはplt.bar関数で作れます。円グラフと同じデータで試してみましょう。

plt..bar(cate ,x)

plt7

データ可視化をもっと勉強する

samurai_eye

matplotlib.pyplotを使った基本的なグラフ作成の方法を紹介しました。データの可視化やデータ解析、機械学習の勉強は面白いのですが、難しい概念が多くて1人だと挫折してしまうかも。

そんなとき侍エンジニアのマン・ツー・マンレッスンを受講して、あなたの担当インストラクターにいつでも質問ができれば、勉強が捗ると思いませんか?

[su_button url=”https://lp.sejuku.net/lp1_blog_01/?cid=ai_btn1_60895″ target=”blank” background=”#409fdf” color=”#fff88f” size=”10″ center=”yes” radius=”10″ icon=”icon: external-link” icon_color=”#fff88f” text_shadow=”0px 0px 10px #808080″]侍エンジニアとは?
詳細はこちらから
[/su_button]

matplotlibの使い方からDeep Learningの実装まで、専門分野に詳しいインストラクターと一緒に勉強を始めましょう!

まとめ

この記事では、matplotlib.pyplotについて紹介しました。基本的なグラフの作り方についても紹介しましたが、pyplotでできることはまだまだたくさんあります。

作りたいグラフが出てくるたびに、都度調べてみることをおすすめしますよ! この記事でpyplotの勉強を始めてくれる人が一人でもいることを祈ります!

この記事を書いた人

【プロフィール】
DX認定取得事業者に選定されている株式会社SAMURAIのマーケティング・コミュニケーション部が運営。「質の高いIT教育を、すべての人に」をミッションに、IT・プログラミングを学び始めた初学者の方に向け記事を執筆。
累計指導者数4万5,000名以上のプログラミングスクール「侍エンジニア」、累計登録者数1万8,000人以上のオンライン学習サービス「侍テラコヤ」で扱う教材開発のノウハウ、2013年の創業から運営で得た知見に基づき、記事の執筆だけでなく編集・監修も担当しています。
【専門分野】
IT/Web開発/AI・ロボット開発/インフラ開発/ゲーム開発/AI/Webデザイン

目次