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) # 同上
↑の場合、x
とy
には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を使うとグラフ(プロット)を簡単に描画できて便利ですね。
🦝 < 視覚化って大事よね