はじめに
データ可視化では、散布図を使って 2 つの変数間の関係を示します。また、ヒストグラムは単一の変数の分布を示すのに便利です。このチュートリアルでは、Python の Matplotlib ライブラリを使ってヒストグラム付きの散布図を作成する方法を学びます。
VM のヒント
VM の起動が完了したら、左上隅をクリックしてノートブックタブに切り替え、Jupyter Notebook を使って練習しましょう。
時々、Jupyter Notebook が読み込み終了するまで数秒待つ必要がある場合があります。Jupyter Notebook の制限により、操作の検証を自動化することはできません。
学習中に問題に遭遇した場合は、Labby にお問い合わせください。セッション後にフィードバックを提供してください。すぐに問題を解決いたします。
必要なライブラリをインポートする
このステップでは、必要なライブラリをインポートします。
import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.axes_grid1 import make_axes_locatable
ランダムなデータを作成する
このステップでは、散布図に使用するためのランダムなデータを作成します。
np.random.seed(19680801)
x = np.random.randn(1000)
y = np.random.randn(1000)
散布図を作成する
このステップでは、ステップ 2 のランダムなデータを使って散布図を作成します。
fig, ax = plt.subplots(figsize=(5.5, 5.5))
ax.scatter(x, y)
ax.set_aspect(1.)
ヒストグラムを作成する
このステップでは、mpl_toolkits.axes_grid1 からの make_axes_locatable を使って、x と y の変数に対するヒストグラムを作成します。
divider = make_axes_locatable(ax)
ax_histx = divider.append_axes("top", 1.2, pad=0.1, sharex=ax)
ax_histy = divider.append_axes("right", 1.2, pad=0.1, sharey=ax)
ax_histx.xaxis.set_tick_params(labelbottom=False)
ax_histy.yaxis.set_tick_params(labelleft=False)
binwidth = 0.25
xymax = max(np.max(np.abs(x)), np.max(np.abs(y)))
lim = (int(xymax/binwidth) + 1)*binwidth
bins = np.arange(-lim, lim + binwidth, binwidth)
ax_histx.hist(x, bins=bins)
ax_histy.hist(y, bins=bins, orientation='horizontal')
ax_histx.set_yticks([0, 50, 100])
ax_histy.set_xticks([0, 50, 100])
グラフを表示する
このステップでは、ヒストグラム付きの散布図を表示します。
plt.show()
まとめ
このチュートリアルでは、Python の Matplotlib ライブラリを使ってヒストグラム付きの散布図を作成する方法を学びました。まず必要なライブラリをインポートし、次に散布図用のランダムなデータを作成しました。次に、make_axes_locatableを使って散布図とヒストグラムを作成しました。最後に、グラフを表示しました。