↓ メインコンテンツへスキップ
  1. 第08講 機械学習(1/3; ベクトル、行列、可視化)/

📈 データの可視化

ここでは基本的なグラフの描画方法について学びます。 なお、グラフの描画には、matplotlibライブラリを使用します。 Matplotlib は matplotlib.pyplot as pltとしてインポートされることが多いです。

matplotlib.pyplotの主な関数
#

教科書 p.351(Lesson 12.3)
関数内容
axis(x最小値, x最大値, y最小値, y最大値)軸を設定する。
xlim(x最小値, x最大値)x軸の範囲を設定する。
ylim(y最小値, y最大値)y軸の範囲を設定する。
xlabel(x軸のラベル)x軸のラベルを設定する。
ylabel(y軸のラベル)y軸のラベルを設定する。
xticks(位置列)位置列に目盛りを設定する。
yticks(位置列)位置列に目盛りを設定する。
title(タイトル)グラフタイトルを設定する。
text(x, y, 文字列)(x, y)に文字列を描画する。
arrow(x,y, dx, dy)(x, y)-(dx, dy)に矢印を描画する。
legend()凡例を表示する。
imread(ファイル)画像を読み込む。
imsave(ファイル)画像として保存する。
imshow(x)xに画像を表示する。
cla()クリアする。
show()グラフを描画する。
plot(データ系列)データ系列を描画する。
hist(データ系列)ヒストグラムを描画する。
scatter(データ系列1, データ系列2)散布図を描画する。

ヒストグラム(Histogram)
#

教科書 p.347(Lesson 12.3)

ヒストグラムを描画するには、plt.hist(data)関数で、描画したいデータ(data)を渡し、plt.show()関数でグラフを表示します。 hist関数には、以下のように様々なオプション引数があります(教科書 p.350)。

引数内容デフォルト値他の指定など
xデータ系列必須の引数
bins階級数規定値
range範囲None
cumulative累積FalseTrue(累積)
bottom下端None
histtypeヒストグラムの種類barbarstacked(積み上げグラフ)、step(枠線)、stepfilled(枠線塗りつぶし)
align位置mid(中央)left(左)、right(右)
orientation向きvertical(垂直)horizontal(水平)
rwidth階級幅に対する棒の相対値None
log対数表示FalseTrue(対数表示)
color色None
label凡例None
stacked積み上げFalseTrue(積み上げ表示)

散布図(Scatter Plot)
#

教科書 p.353(Lesson 12.4)

散布図を描画するには、plt.scatter(x, y)関数で、x軸とy軸のデータを渡し、plt.show()関数でグラフを表示します。 scatter関数には、以下のように様々なオプション引数があります(教科書 p.352)。

引数内容デフォルト値他の指定など
xx必須
yy必須
sサイズ規定値
c色bb(青), g(緑), r(赤), c(シアン), m(マゼンタ), y(黄), k(黒), w(白)
markerマーカーo教科書 p.360 表12-9参照
alpha透明度None0.0(透明)〜1.0(不透明)
linewiths線の太さNone
edgecolors境界色Noneb(青), g(緑), r(赤), c(シアン), m(マゼンタ), y(黄), k(黒), w(白)

その他のグラフ
#

教科書 p.357(Lesson 12.5)

サイン/コサイン 関数
#

import math
import matplotlib.pyplot as plt

x = []
s = []
c = []

for i in range(50):
    x.append(i * 0.05 * math.pi) # xの値を作成する。
    s.append(math.sin(x[i]))     # sinの値を作成する。
    c.append(math.cos(x[i]))     # cosの値を作成する。

plt.title("sin/cos functions")
plt.xlabel("rad")
plt.ylabel("value")
plt.grid(True)              # グリッドを表示する。
plt.axis("equal")           # グラフの縦横比を1:1にする。

plt.plot(x, s, label="sin") # sin関数のグラフをラベル付きで作成する。
plt.plot(x, c, label="cos") # cos関数のグラフをラベル付きで作成する。
plt.legend()                # ラベルから凡例を作成する(plot の後に呼び出す)。

plt.show()

実行結果
#

sin/cos関数