Matplotlibによるグラフ作成 第4回
PythonのMatplotlibを使用した基本的なグラフ作成方法を紹介する
今回は、分布
を表すグラフとして散布図
を紹介する
また、ヒストグラムを簡易化して比較しやすくするBoxプロットとViolinプロットも紹介する
サンプルデータ生成
1次関数と2次関数の分布を用意する
import matplotlib.pyplot as plt import numpy as np data_x = [] data_y1 = [] data_y2 = [] for i in range(-10, 11): data_x += [i] data_y1 += [i * 5 + 20 + np.random.normal(0, 5)] data_y2 += [i**2 + np.random.normal(0, 5)]
散布図
fig = plt.figure(figsize=(6, 5)) ax = fig.add_subplot(111) ax.scatter(data_x, data_y1) ax.scatter(data_x, data_y2) ax.grid() fig.tight_layout()
散布図:カラーとサイズ
import matplotlib.cm as cm fig = plt.figure(figsize=(6, 5)) ax = fig.add_subplot(111) sc = ax.scatter( data_x, data_y1, s=np.abs(data_y2), c=data_y2, cmap=cm.jet, vmin=-100, vmax=100, marker='o' ) ax.grid() fig.colorbar(sc) fig.tight_layout()
サンプルデータ生成2
2つの確率分布を用意する
import matplotlib.pyplot as plt import numpy as np mean1 = 10 sigma1 = 5 N1 = 1000 data1 = np.random.normal(mean1, sigma1, N1) mean2 = 40 sigma2 = 10 N2 = 1000 data2 = np.random.normal(mean2, sigma2, N2)
Boxプロット
箱ひげ図、とも呼ばれる
fig = plt.figure(figsize=(6, 5)) ax = fig.add_subplot(111) ax.boxplot([data1, data2]) ax.grid() fig.tight_layout()
Violinプロット
fig = plt.figure(figsize=(6, 5)) ax = fig.add_subplot(111) ax.violinplot([data1, data2]) ax.grid() fig.tight_layout()