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()
折れ線グラフを表示したい場合、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()
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()
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()
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()
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()
pie()
を利用すると円グラフを表示できます。
棒グラフ|bar
import matplotlib.pyplot as plt
x = [40, 10, 15, 35]
labels = ['A', 'B', 'C', 'D']
plt.bar(labels, x)
plt.show()
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()
scatter()
を利用すると散布図を表示できます。
ヒストグラフ|hist
import matplotlib.pyplot as plt
import numpy as np
x = np.random.randn(1000)
plt.hist(x)
plt.show()
hist()
を利用するとヒストグラフを表示できます。