matplotlibの使い方

matplotlibの基本的な使い方と、各種グラフ(折れ線グラフ、円グラフ、棒グラフ、散布図、ヒストグラフ)の表示方法を確認します。

インストール

pipenv を利用している場合、以下のようにインストールします。

$ pipenv install matplotlib

プログラムから利用するにはimportが必要です。
慣習的に matplotlib.pyplot をimportするときは plt と別名をつけます。

import matplotlib.pyplot as plt

x = [0, 1, 2, 3, 4]
y = [0, 1, 2, 4, 8]

plt.plot(x, y)
plt.show()
511-python-matplotlib_basic.png

折れ線グラフを表示したい場合、plot()を利用します。x軸の値一覧、y軸の値一覧を引数として渡しています。

基本的な使い方

タイトル、軸ラベルの設定

import matplotlib.pyplot as plt

x = [0, 1, 2, 3, 4]
y = [0, 1, 2, 4, 8]

plt.plot(x, y)

# グラフタイトル
plt.title('graph title')

# 軸ラベル
plt.xlabel('xxxxx')
plt.ylabel('yyyyy')

plt.show()
511-python-matplotlib_basic2.png

title()でグラフタイトルを設定してます。

xlabel()ylabel()で軸ラベルを設定しています。

複数のグラフを描画

import matplotlib.pyplot as plt

x = [0, 1, 2, 3, 4]
y1 = [0, 1, 2, 3, 4]
y2 = [0, 2, 4, 6, 8]

plt.plot(x, y1, label='abc')
plt.plot(x, y2, label='xyz')

# 凡例
plt.legend()

plt.show()
511-python-matplotlib_basic3.png

plot()を実行した分だけグラフを表示できます。

legend()を実行すると、どのデータのグラフか判断できるように凡例が表示されます。

マーカーの変更

import matplotlib.pyplot as plt

x = [0, 1, 2, 3, 4]
y1 = [0, 1, 2, 3, 4]
y2 = [0, 2, 4, 6, 8]

# [r red] [o 円]
plt.plot(x, y1, 'ro', label='y1')

# [g green] [-- 点線]
plt.plot(x, y2, 'g--', label='y2')

plt.legend()
plt.show()
511-python-matplotlib_basic4.png

plot()の第3引数でマーカーの形式を設定しています。

表示範囲を調整

import matplotlib.pyplot as plt
import numpy as np

data1 = np.random.rand(100) * 100
data2 = np.random.rand(100) * 100

plt.plot(data1)
plt.plot(data2)

# x軸の表示範囲を10から40にする
plt.xlim(10, 40)

# y軸の表示範囲を0から90にする
plt.ylim(0, 90)

plt.show()
511-python-matplotlib_basic5.png

xlim()ylim()でグラフの表示範囲を設定しています。

グラフ種類

折れ線グラフ以外の代表的なグラフについて、表示方法を確認します。

円グラフ|pie

import matplotlib.pyplot as plt

x = [40, 10, 15, 35]
labels = ['A', 'B', 'C', 'D']

plt.pie(
    x,
    labels=labels,
    autopct='%1.1f%%',
    startangle=90
)

plt.show()
511-python-matplotlib_pie.png

pie()を利用すると円グラフを表示できます。

棒グラフ|bar

import matplotlib.pyplot as plt

x = [40, 10, 15, 35]
labels = ['A', 'B', 'C', 'D']

plt.bar(labels, x)

plt.show()
511-python-matplotlib_bar.png

bar()を利用すると棒グラフを表示できます。

散布図|scatter

import matplotlib.pyplot as plt
import numpy as np

x = np.random.randn(50)
y = np.random.randn(50)
plt.scatter(x, y)
plt.grid()

plt.show()
511-python-matplotlib_scatter.png

scatter()を利用すると散布図を表示できます。

ヒストグラフ|hist

import matplotlib.pyplot as plt
import numpy as np

x = np.random.randn(1000)

plt.hist(x)

plt.show()
511-python-matplotlib_hist.png

hist()を利用するとヒストグラフを表示できます。

参考