メインコンテンツへスキップ
  1. 第12講 機械学習(1/3)/

📈 データの可視化

Matplotlib グラフ Histogram 散布図
目次

第1講 グラフ で学んだグラフの描画を復習し, さらに他のグラフの描画方法について学びます. なお,グラフの描画には,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 累積 False True(累積)
bottom 下端 None
histtype ヒストグラムの種類 bar barstacked(積み上げグラフ),step(枠線),stepfilled(枠線塗りつぶし)
align 位置 mid(中央) left(左),right(右)
orientation 向き vertical(垂直) horizontal(水平)
rwidth 階級幅に対する棒の相対値 None
log 対数表示 False True(対数表示)
color None
label 凡例 None
stacked 積み上げ False True(積み上げ表示)

散布図(Scatter Plot)
#

教科書 p.353(Lesson 12.4)

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

引数 内容 デフォルト値 他の指定など
x x 必須
y y 必須
s サイズ 規定値
c b b(青), g(緑), r(赤), c(シアン), m(マゼンタ), y(黄), k(黒), w(白)
marker マーカー o 教科書 p.360 表12-9参照
alpha 透明度 None 0.0(透明)〜1.0(不透明)
linewiths 線の太さ None
edgecolors 境界色 None b(青), 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.legend()                # ラベルから凡例を作成する.

plt.plot(x, s, label="sin") # sin関数のグラフをラベル付きで作成する.
plt.plot(x, c, label="cos") # cos関数のグラフをラベル付きで作成する.

plt.show()

実行結果
#

sin/cos関数