Python

Matplotlibの使い方

By 2021年3月24日March 25th, 2021No Comments

この記事ではMatplotlibとは何か、どうやって使えばいいのかを解説します。Matplotlibを使えるようになると、簡単にグラフを作成できるようになり様々な分野で役に立つのでぜひ使いこなせるようになりましょう。

Udemyの動画学習でもPythonを勉強しよう!

「平日の夜の勉強会には時間が間に合わなくて参加できない」「通勤時間のわずかな隙間時間を勉強時間にあてたい」「本ではよく分からないところを動画で理解を深めたい」そんなあなたはUdemyの動画学習がお勧めです!

UdemyのPythonおすすめ33講座レビューリスト

Matplotlibとは何か

Matplotlibとは、グラフ描画を行うモジュールの集まった外部ライブラリのことです。モジュールやライブラリについては以下の記事でまとめていますので参照してください。

# ライブラリの記事のリンク

Matplotlibを使うことで、グラフの描画やデータの可視化が簡単に行なえます。グラフの種類としても、

  • 散布図
  • 棒グラフ
  • 折れ線グラフ
  • ヒストグラム

などの多くの種類のグラフを描くことができます。そのため、数値解析から人工知能開発、医療の画像解析など幅広い分野で使われています。

MatplotlibはNumpyと密接な関係があり、Matplotlibを使うにあたっては、Numpyのモジュールを頻繁に使います。Numpyについてまだ学習済みでない人は以下の記事をご参照ください。

# Numpyの使い方

Matplotlibを使うには

MatplotlibもNumpyと同じく外部ライブラリなので、使用するにはインストールが必要になります。Numpyの記事でも取り上げましたが、インストールにはAnacondaやminicondaがおすすめです。

Anacondaのインストール: https://www.anaconda.com/products/individual

Minicondaのインストール: https://docs.conda.io/en/latest/miniconda.html

Matplotlibを使ったグラフの簡単な作り方

早速、Matplotlibを使ってグラフを描く方法を学んでいきましょう。Matplotlibを使った最も簡単なグラフの書き方は以下の通りです。

  1.  matplotlib.pyplotをインポートする
  2.  x軸の配列を作る
  3.  y軸の配列を作る
  4.  plot関数を使いプロットする
  5.  show関数を使いプロットしたグラフを描画する

ひとつひとつの手順を追って確認していきます。

今回はx軸の範囲-10<x<10でsin関数を描いてみます。

1.matplotlib.pyplotをインポートする

Matplotlibは外部ライブラリなのでimportすることで使えるようになります。Numpyも使うので一緒にimportしておきましょう。

import matplotlib.pyplot as plt
import numpy as np

Numpyをnpと略して書くように、Matplotlib.pyplotも一般的にpltと省略します。Matplotlib.pyplotは、Matplotlibライブラリの中のモジュールの一つです。基本的なグラフを描くにあたってはMatplotlib.pyplotモジュールで十分に描くことができます。

2. x軸の配列を作る

x軸の配列を今回はnp.linspace関数を用いて作ります。np.arange関数を用いるなど、自分が作りたいx軸の配列に応じて使う関数を決めましょう。

x = np.linspace(-10, 10, 100)  # -10から10までを0.1区切りで配列を作る

3.y軸の配列を作る

y軸はxの値をsin関数に代入した値になります。sin関数にはnp.sinを使います。

y = np.sin(x)  # xそれぞれに対してsin(x)を求めてy軸の配列を生成します

4. plot関数を使いプロットする

x軸とy軸の値が決まったら、それをグラフ上にプロット(点を打つ)していきます。グラフへのプロットにはplt.plot関数を使います。引数の中には(x軸の値, y軸の値)を入れます。

plt.plot(x, y)  

5.show関数を使いプロットしたグラフを描画する

最後にplt.showを使ってプロットしたグラフを出力します。

plt.show()

以上の操作をまとめると以下のコードになります。

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(-10, 10, 100)  # -10から10までを0.1区切りで配列を作る
y = np.sin(x)  # xそれぞれに対してsin(x)を求めてy軸の配列を生成します

plt.plot(x, y)  # グラフ上に点を取ります
plt.show()  # グラフを出力します。

結果は以下のグラフになりました。

次のセクションではグラフに必要な要素を足していきます。

タイトル、軸ラベル、凡例をつけ方

タイトルはplt.title、軸ラベルはplt.xlabelを使って表現することができます。

# x, yは上の値を用いています
plt.title('A Sine Curve')  # タイトル
plt.xlabel('x')  # x軸のラベル
plt.ylabel('y')  # y軸のラベル

plt.plot(x, y)
plt.show()

結果は以下のように出力されます。

タイトルと軸ラベルをつけることができました。

1つの図に複数の線を書きたい場合には、単にplot関数を複数回使用します。

y = np.sin(x)
z = np.cos(x)
plt.plot(x, y, label='sin(x)')  # label=''で凡例をつけることができます
plt.plot(x, z, label='cos(x)')
plt.legend() # plt.legendによって凡例をグラフ上に出力できます
plt.show()

上のサンプルコードでは加えてcos関数を生成しています。また、plt.plotの引数にlabel=を加え、plt.legend関数を用いることで凡例をつけることができます。結果は以下のグラフになりました。

plt.show()をplt.savefigに変更すれば、スクリーンに出力する代わりに保存ができます。

プログラムと同じフォルダにsin.pngというファイルが作成されます。

plt.savefig('sin.png')  # ()内には保存したいファイル名を書きます

以上のようにして、簡単にグラフを作り、軸ラベルや凡例をつけることができ、保存までを行うことができます。

まとめ

この記事ではMatplotlibとは何かから簡単なグラフを作るところまでを解説しました。Matplotlibは最初は覚える要素が多く図を作るのに時間がかかるかもしれません。しかし、慣れていけば、きれいなグラフを素早く描くことができます。ぜひ、使いこなせるようになりましょう。

Udemyの動画学習でもPythonを勉強しよう!

「平日の夜の勉強会には時間が間に合わなくて参加できない」「通勤時間のわずかな隙間時間を勉強時間にあてたい」「本ではよく分からないところを動画で理解を深めたい」そんなあなたはUdemyの動画学習がお勧めです!

UdemyのPythonおすすめ33講座レビューリスト
HOSL

Author HOSL

More posts by HOSL