Matplotlib カラーマップ画像生成

PythonPythonBeginner
今すぐ練習

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

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

はじめに

このチュートリアルでは、Python の Matplotlib ライブラリを使って、単一のカラーマップ、ノルム、カラーバーを持つ画像セットを作成するプロセスを案内します。データを生成し、色スケールを設定し、他の画像のノルムの変化に応答して画像を更新する方法を学びます。

VM のヒント

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

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

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

ライブラリのインポート

まず、必要なライブラリをインポートする必要があります。numpy と matplotlib です。再現性を保証するために、乱数シードも設定します。

import matplotlib.pyplot as plt
import numpy as np

データの生成とサブプロットの作成

次に、画像用のデータを生成します。3x2 のサブプロットのグリッドを作成し、各サブプロットにはランダムに生成された値の配列を含めます。

np.random.seed(19680801)
Nr = 3
Nc = 2

fig, axs = plt.subplots(Nr, Nc)
fig.suptitle('Multiple images')

images = []
for i in range(Nr):
    for j in range(Nc):
        ## Generate data with a range that varies from one plot to the next.
        data = ((1 + i + j) / 10) * np.random.rand(10, 20)
        images.append(axs[i, j].imshow(data))
        axs[i, j].label_outer()

色スケールの設定とカラーバーの作成

次に、画像の色スケールを設定し、値の範囲を示すカラーバーを作成します。すべての画像の最小値と最大値を見つけ、それに応じて色スケールを正規化します。

vmin = min(image.get_array().min() for image in images)
vmax = max(image.get_array().max() for image in images)
norm = colors.Normalize(vmin=vmin, vmax=vmax)
for im in images:
    im.set_norm(norm)

fig.colorbar(images[0], ax=axs, orientation='horizontal', fraction=.1)

画像の更新

最後に、他の画像のノルムの変化に応答して画像を更新します。これにより、1 つの画像のカラーマップと色スケールを変更したときに、他のすべての画像もそれに応じて更新されるようになります。

def update(changed_image):
    for im in images:
        if (changed_image.get_cmap()!= im.get_cmap()
                or changed_image.get_clim()!= im.get_clim()):
            im.set_cmap(changed_image.get_cmap())
            im.set_clim(changed_image.get_clim())

for im in images:
    im.callbacks.connect('changed', update)

まとめ

この実験では、Python の Matplotlib ライブラリを使って、単一のカラーマップ、ノルム、およびカラーバーを持つ画像のセットを作成する方法を学びました。データを生成し、色スケールを設定し、他の画像のノルムの変化に応答して画像を更新しました。これは、同じ色スケールとカラーマップで複数のデータセットを可視化するための便利な手法です。