機械学習入門!色んなグラフを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の勉強を始めてくれる人が一人でもいることを祈ります!

「プログラミング、右も左もわからない…」という方にオススメ

当プログラミングスクール「侍エンジニア塾」では、これまで6000人以上のエンジニアを輩出してきました。

その経験を通してプログラミング学習に成功する人は、「目的目標が明確でそれに合わせた学習プランがあること」「常に相談できる人がそばにいること」「自己解決能力が身につくこと」この3つが根付いている傾向を発見しました。

侍エンジニア塾は上記3つの成功ポイントを満たすようなサービス設計に磨きをかけております。

cta_under_bnr

「自分のスタイルや目的に合わせて学習を進めたいな」とお考えの方は、ぜひチェックしてみてください。

書いた人

フクロウ

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

おすすめコンテンツ

まずはここから!初心者でも1から学べるプログラミング入門カリキュラム

転職成功で受講料0円!あなたもプログラミングを学んでエンジニアデビュー