スライドショー スライドショー スライドショー

機械学習入門!色んなグラフを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人だと挫折してしまうかも。

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

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

まとめ

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

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

第一言語はPythonです。
皆さんRustやりましょう。

あなたの目的に合わせた
SAMURAI ENGINEERの運営サービス

SAMURAI ENGINEER Pro

未経験でも挫折しないプログラミングスクール

詳細はこちら

SAMURAI ENGINEER Plus

日本最大級のサブスク型オンラインITスクール

詳細はこちら

SAMURAI ENGINEER Freelance

「一人で稼げる」スキルを身につける

詳細はこちら