ホームページ >バックエンド開発 >Python チュートリアル >Matplotlib カラーマップの正規化: 非線形データの視覚化
データの視覚化では、カラーマップを使用して数値データを色で表現します。ただし、データの分布が非線形になる場合があり、データの詳細を識別することが困難になる場合があります。このような場合、カラーマップ正規化を使用して非線形な方法でカラーマップをデータにマッピングし、データをより正確に視覚化することができます。 Matplotlib は、カラーマップの正規化に使用できる SymLogNorm や AsinhNorm などのいくつかの正規化メソッドを提供します。このラボでは、SymLogNorm と AsinhNorm を使用してカラーマップを非線形データにマッピングする方法を説明します。
VM の起動が完了したら、左上隅をクリックして ノートブック タブに切り替え、練習用に Jupyter Notebook にアクセスします。
場合によっては、Jupyter Notebook の読み込みが完了するまで数秒待つ必要がある場合があります。 Jupyter Notebook の制限により、操作の検証を自動化できません。
学習中に問題が発生した場合は、お気軽に Labby に質問してください。セッション後にフィードバックを提供していただければ、問題を速やかに解決いたします。
このステップでは、Matplotlib、NumPy、Matplotlib カラーなどの必要なライブラリをインポートします。
import matplotlib.pyplot as plt import numpy as np import matplotlib.colors as colors
このステップでは、負のハンプと正のハンプの 2 つのハンプで構成される合成データセットを作成します。正のハンプの振幅は負のハンプの 8 倍です。次に、SymLogNorm を適用してデータを視覚化します。
def rbf(x, y): return 1.0 / (1 + 5 * ((x ** 2) + (y ** 2))) N = 200 gain = 8 X, Y = np.mgrid[-3:3:complex(0, N), -2:2:complex(0, N)] Z1 = rbf(X + 0.5, Y + 0.5) Z2 = rbf(X - 0.5, Y - 0.5) Z = gain * Z1 - Z2 shadeopts = {'cmap': 'PRGn', 'shading': 'gouraud'} colormap = 'PRGn' lnrwidth = 0.5
このステップでは、合成データに SymLogNorm を適用し、結果を視覚化します。
fig, ax = plt.subplots(2, 1, sharex=True, sharey=True) pcm = ax[0].pcolormesh(X, Y, Z, norm=colors.SymLogNorm(linthresh=lnrwidth, linscale=1, vmin=-gain, vmax=gain, base=10), **shadeopts) fig.colorbar(pcm, ax=ax[0], extend='both') ax[0].text(-2.5, 1.5, 'symlog') pcm = ax[1].pcolormesh(X, Y, Z, vmin=-gain, vmax=gain, **shadeopts) fig.colorbar(pcm, ax=ax[1], extend='both') ax[1].text(-2.5, 1.5, 'linear') plt.show()
このステップでは、合成データに AsinhNorm を適用し、結果を視覚化します。
fig, ax = plt.subplots(2, 1, sharex=True, sharey=True) pcm = ax[0].pcolormesh(X, Y, Z, norm=colors.SymLogNorm(linthresh=lnrwidth, linscale=1, vmin=-gain, vmax=gain, base=10), **shadeopts) fig.colorbar(pcm, ax=ax[0], extend='both') ax[0].text(-2.5, 1.5, 'symlog') pcm = ax[1].pcolormesh(X, Y, Z, norm=colors.AsinhNorm(linear_width=lnrwidth, vmin=-gain, vmax=gain), **shadeopts) fig.colorbar(pcm, ax=ax[1], extend='both') ax[1].text(-2.5, 1.5, 'asinh') plt.show()
このラボでは、SymLogNorm と AsinhNorm を使用してカラーマップを非線形データにマッピングする方法を学びました。これらの正規化手法を適用することで、データをより正確に視覚化し、データの詳細をより簡単に識別できるようになります。
?今すぐ練習: Matplotlib カラーマップの正規化
以上がMatplotlib カラーマップの正規化: 非線形データの視覚化の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。