ユーニックス総合研究所

  • home
  • archives
  • python-matplotlib

matplotlibの賢い使い方を4つ紹介【Python】

  • 作成日: 2021-07-01
  • 更新日: 2023-12-26
  • カテゴリ: Python

Pythonのmatplotlibの賢い使い方

Pythonにはグラフを描画するライブラリとしてmatplotlibというライブラリがあります。
このライブラリを使うと簡単にグラフを描画することができます。

この記事ではmatplotlibを使ったグラフの描画方法を解説します。
結論から言うとグラフは↓のように描画します。

import matplotlib.pyplot as plt  
import numpy as np  


x = np.arange(0, 10, 0.1)  # x軸の座標列を作成  
y = np.sin(x)  # x軸の座標列からsinの座標列を作成  
plt.plot(x, y)  # グラフを描画  
plt.show()  # グラフの表示  

解説では具体的に↓を見ていきます。

  • matplotlibの特徴
  • matplotlibのインストール
  • グラフの描画方法
  • グラフの設定方法
  • sin(サイン)を使ったグラフを描画してみる
  • グラフを2つ描画する

matplotlibの特徴

matplotlibはPythonとNumpyのためのグラフ描画ライブラリです。
描画エンジンにcairoを使っています。
オブジェクト指向的な使い方が可能で、さまざまなAPIを提供しています。
2次元のグラフや3次元のグラフを描画可能です。

ソースコードはGitHub上で公開されており、↓のリンクからアクセスできます。

matplotlibのインストール

matplotlibは外部ライブラリです。
そのためインストールが必要です。
pipなどで↓のようにインストールします。

$ pip install matplotlib  

またnumpyも一緒に使うのでインストールしておきます。

$ pip install numpy  

グラフの描画方法

matplotlibでグラフを描画する方法は基本的には↓の通りです。

  • X軸、Y軸の座標列を用意する(Numpy)
  • plot()に座標列を渡してグラフを描画する
  • show()でグラフを表示する

座標列の作成にはNumpyが便利なのでこれを使います。
Numpyで作成した座標列をplot()に渡し、その描画結果をshow()で表示するという具合です。

matplotlibとNumpyを使うにははじめにこれらのライブラリをインポートしておく必要があります。
慣例的に↓のようなインポートを行います。

import matplotlib.pyplot as plt  
import numpy as np  

座標列を作成するにはたとえばNumpyのarange()を使います。

x = np.arange(0, 100)  # 0から100の範囲で1刻みで作成  
y = np.arange(0, 100)  # 同上  

↑の場合、xyには0から100の範囲の座標が保存されます。

関連記事
Numpyのarangeの使い方: 指定範囲の数列を生成する

この作成した座標列をグラフして表示するには↓のようにします。

plt.plot(x, y)  # グラフを描画  
plt.show()  # グラフを表示  

これまでのコード全文は↓になります。

import matplotlib.pyplot as plt  
import numpy as np  


x = np.arange(0, 100)  # 0から100の範囲で1刻みで作成  
y = np.arange(0, 100)  # 同上  

plt.plot(x, y)  # グラフを描画  
plt.show()  # グラフを表示  

↑のコードを実行すると↓のような結果になります。

グラフの設定方法

作成するグラフにタイトルを付けたり、X軸やY軸に名前を付けたい場合があります。
それらの設定はtitle()xlabel(), ylabel()を使います。

import matplotlib.pyplot as plt  
import numpy as np  


plt.title('収入の変移')  # グラフのタイトル  
plt.xlabel('時間(日)')  # X軸のラベル  
plt.ylabel('収入')  # Y軸のラベル  

x = np.arange(0, 100)  # 0~100の範囲で1刻みで作成  
y = np.arange(0, 100)  # 同上  

plt.plot(x, y)  # グラフを描画  
plt.show()  # グラフを表示  

↑のコードを実行すると↓のようなグラフになります。

sin(サイン)を使ったグラフを描画してみる

Numpyのsin()を使うとサイン波の座標列を作ることができます。

import matplotlib.pyplot as plt  
import numpy as np  


plt.title('サイン波を見てみる')  # グラフのタイトルを設定  

x = np.arange(0, 10, 0.1)  # 0~10の範囲で0.1刻みで作成  
y = np.sin(x)  # xの座標列からサインな座標列を作成  

plt.plot(x, y)  # グラフの描画  
plt.show()  # グラフの表示  

↑のコードを実行すると↓のような結果になります。

グラフを2つ描画する

グラフを2つ描画したい場合はplot()を2回呼び出し、それぞれ座標列を変えます。

import matplotlib.pyplot as plt  
import numpy as np  


plt.title('グラフを2つ描画する')  # タイトルの設定  
plt.xlabel('X軸')  # X軸のラベル  
plt.ylabel('Y軸')  # Y軸のラベル  

x = np.arange(0, 10, 0.1)  # 0~10の範囲で0.1刻みで作成  
sin_y = np.sin(x)  # サイン波  
cos_y = np.cos(x)  # コサイン波  

plt.plot(x, sin_y, label='sin')  # グラフを描画  
plt.plot(x, cos_y, label='cos')  # 同上  
plt.legend()  # 右上に凡例を表示する  

plt.show()  # グラフの表示  

↑のコードを実行すると↓のような結果になります。

おわりに

今回はPythonのmatplotlibについて見てみました。
matplotlibを使うとグラフ(プロット)を簡単に描画できて便利ですね。

🦝 < 視覚化って大事よね