Matplotlib でカスタムカラーバー目盛りを作成する

PythonPythonBeginner
今すぐ練習

This tutorial is from open-source community. Access the source code

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

データ可視化では、カラーバーを使って色を使ってデータセットの値の範囲を表します。Matplotlibは、カラーバーを含むさまざまなビジュアライゼーションを作成するためのPythonライブラリです。この実験では、Matplotlibのカラーバーの目盛りラベルをカスタマイズする方法を学びます。

VMのヒント

VMの起動が完了したら、左上隅をクリックしてノートブックタブに切り替え、Jupyter Notebookを使って練習しましょう。

時々、Jupyter Notebookが読み込み終わるまで数秒待つ必要がある場合があります。Jupyter Notebookの制限により、操作の検証を自動化することはできません。

学習中に問題に遭遇した場合は、Labbyにお問い合わせください。セッション後にフィードバックを提供してください。すぐに問題を解決いたします。

必要なライブラリをインポートして乱数シードを固定する

まず、再現性のために必要なライブラリをインポートして乱数シードを固定する必要があります。乱数データを生成するために numpy を、ビジュアライゼーションを作成するために matplotlib.pyplot を、カラーマップを定義するために matplotlibcm を使用します。

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)

縦型のカラーバー付きのプロットを作成する

まずは、縦型のカラーバー付きのプロットを作成します。numpyrandn を使っていくつかの乱数データを生成し、その値を -1 から 1 の範囲にクリップします。その後、imshowcoolwarm カラーマップを使って 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 を使って目盛りラベルをカスタマイズしました。カラーバーの目盛りラベルをカスタマイズすることで、グラフの情報量を増やし、読みやすくすることができます。