はじめに
データ可視化では、カラーバーを使って色を使ってデータセットの値の範囲を表します。Matplotlib は、カラーバーを含むさまざまなビジュアライゼーションを作成するための Python ライブラリです。この実験では、Matplotlib のカラーバーの目盛りラベルをカスタマイズする方法を学びます。
VM のヒント
VM の起動が完了したら、左上隅をクリックしてノートブックタブに切り替え、Jupyter Notebook を使って練習しましょう。
時々、Jupyter Notebook が読み込み終わるまで数秒待つ必要がある場合があります。Jupyter Notebook の制限により、操作の検証を自動化することはできません。
学習中に問題に遭遇した場合は、Labby にお問い合わせください。セッション後にフィードバックを提供してください。すぐに問題を解決いたします。
必要なライブラリをインポートして乱数シードを固定する
まず、再現性のために必要なライブラリをインポートして乱数シードを固定する必要があります。乱数データを生成するために numpy を、ビジュアライゼーションを作成するために matplotlib.pyplot を、カラーマップを定義するために matplotlib の cm を使用します。
import matplotlib.pyplot as plt
import numpy as np
from numpy.random import randn
from matplotlib import cm
## Fixing random state for reproducibility
np.random.seed(19680801)
縦型のカラーバー付きのプロットを作成する
まずは、縦型のカラーバー付きのプロットを作成します。numpy の randn を使っていくつかの乱数データを生成し、その値を -1 から 1 の範囲にクリップします。その後、imshow と coolwarm カラーマップを使って AxesImage オブジェクトを作成します。最後に、プロットにタイトルを追加します。
## Make plot with vertical (default) colorbar
fig, ax = plt.subplots()
data = np.clip(randn(250, 250), -1, 1)
cax = ax.imshow(data, cmap=cm.coolwarm)
ax.set_title('Gaussian noise with vertical colorbar')
縦型のカラーバーの目盛りラベルをカスタマイズする
次に、縦型のカラーバーの目盛りラベルをカスタマイズします。colorbar を使ってカラーバーを作成し、ticks パラメータを使って目盛りの位置を指定します。その後、カラーバーオブジェクトの ax 属性に対して set_yticklabels を使って目盛りラベルを設定します。
## Add colorbar, make sure to specify tick locations to match desired ticklabels
cbar = fig.colorbar(cax, ticks=[-1, 0, 1])
cbar.ax.set_yticklabels(['< -1', '0', '> 1']) ## vertically oriented colorbar
横型のカラーバー付きのプロットを作成する
次に、横型のカラーバー付きのプロットを作成します。ステップ 2 と同じ手順をたどりますが、今回は afmhot カラーマップを使い、カラーバーの方向を横に設定します。
## Make plot with horizontal colorbar
fig, ax = plt.subplots()
data = np.clip(randn(250, 250), -1, 1)
cax = ax.imshow(data, cmap=cm.afmhot)
ax.set_title('Gaussian noise with horizontal colorbar')
cbar = fig.colorbar(cax, ticks=[-1, 0, 1], orientation='horizontal')
cbar.ax.set_xticklabels(['Low', 'Medium', 'High']) ## horizontal colorbar
プロットを表示する
最後に、plt.show() を使ってプロットを表示します。
plt.show()
まとめ
この実験では、Matplotlib のカラーバーの目盛りラベルをカスタマイズする方法を学びました。まず、縦型のカラーバー付きのプロットを作成し、set_yticklabels を使って目盛りラベルをカスタマイズしました。次に、横型のカラーバー付きのプロットを作成し、set_xticklabels を使って目盛りラベルをカスタマイズしました。カラーバーの目盛りラベルをカスタマイズすることで、グラフの情報量を増やし、読みやすくすることができます。