matplotlibはPythonのグラフ作成・可視化用ライブラリです。matplotlibはPythonのデファクトスタンダードの可視化ライブラリとしての地位を築いていて、Pythonでグラフを作りたいならまず学んでおきたいものです。
matplotlibには色んな機能がありますが、
- 入れ子構造のグラフを作るsubplot
- アニメーションを作るanimation
については別の記事で紹介します。
この記事では、matplotlib.pyplotについてご紹介します。
- matplotlib.pyplotとは?
- どんなグラフが作れるの?
という内容についてまとめました。この記事でmatplotlibに入門しましょう!
matplotlib.pyplotとは
matplotlib.pyplotは、matplotlibパッケージの中のモジュールの一つです。グラフを作るためのインターフェイスが集まっています。
基本的には
import matplotlib.pyplot as plt
としてimportして使います。様々な形のグラフを作る機能が入っているので、大体の場合このモジュールでほしいグラフが作れるはずです!
matplotlib.pyplotで作れるグラフ
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)
plt.plot関数では、x軸を省略することができます。その場合与えられたデータはy軸のものとしてグラフが作られます。
ですがこれでは物寂しいですね。次はグラフのタイトルと、今表示されているグラフに名前(ラベル)をつけてあげましょう。
# グラフにラベルを付けてみる plt.plot(x,y, label="random data") plt.xlabel("time series") plt.ylabel("power") plt.title("sample graph") plt.legend()
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()
追加したいグラフの分だけ、plt.plot関数を書いてあげれるだけでOKです。ここではsin波とcos波をプロットしてみました。
散布図
散布図はscater plotと良い、これもpyplotで簡単に使えます。plt.scatter関数を試してみましょう。
x = np.random.randn(50) y = np.random.randn(50) plt.scatter(x,y)
もちろんこれでも複数のグラフを表示できます。例えば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")
ここでは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)
棒グラフ
棒グラフはplt.bar関数で作れます。円グラフと同じデータで試してみましょう。
plt..bar(cate ,x)
データ可視化をもっと勉強する
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の勉強を始めてくれる人が一人でもいることを祈ります!