ホームページ >バックエンド開発 >Python チュートリアル >Matplotlib カラーマップの正規化: 非線形データの視覚化

Matplotlib カラーマップの正規化: 非線形データの視覚化

PHPz
PHPzオリジナル
2024-08-19 16:40:42868ブラウズ

導入

Matplotlib Colormap Normalization: Visualizing Nonlinear Data

データの視覚化では、カラーマップを使用して数値データを色で表現します。ただし、データの分布が非線形になる場合があり、データの詳細を識別することが困難になる場合があります。このような場合、カラーマップ正規化を使用して非線形な方法でカラーマップをデータにマッピングし、データをより正確に視覚化することができます。 Matplotlib は、カラーマップの正規化に使用できる SymLogNorm や AsinhNorm などのいくつかの正規化メソッドを提供します。このラボでは、SymLogNorm と AsinhNorm を使用してカラーマップを非線形データにマッピングする方法を説明します。

VM のヒント

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 を適用する

このステップでは、合成データに 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 を適用する

このステップでは、合成データに 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 カラーマップの正規化


もっと詳しく知りたいですか?

  • ?最新の Python スキル ツリーを学ぶ
  • ?続きを読む Python チュートリアル
  • ? Discord に参加するか、@WeAreLabEx でツイートしてください

以上がMatplotlib カラーマップの正規化: 非線形データの視覚化の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。