首頁 >後端開發 >Python教學 >Matplotlib 色彩圖標準化:視覺化非線性數據

Matplotlib 色彩圖標準化:視覺化非線性數據

PHPz
PHPz原創
2024-08-19 16:40:42862瀏覽

介紹

Matplotlib Colormap Normalization: Visualizing Nonlinear Data

在資料視覺化中,顏色圖用於透過顏色來表示數值資料。然而,有時數據分佈可能是非線性的,這使得難以辨別數據的細節。在這種情況下,色彩圖標準化可用於以非線性方式將色彩圖對應到資料上,以幫助更準確地視覺化資料。 Matplotlib 提供了多種標準化方法,包括 SymLogNorm 和 AsinhNorm,可用於標準化顏色圖。本實驗將示範如何使用 SymLogNorm 和 AsinhNorm 將色彩圖對應到非線性資料。

虛擬機器提示

虛擬機器啟動完成後,點選左上角切換到Notebook選項卡,造訪Jupyter Notebook進行練習。

有時,您可能需要等待幾秒鐘 Jupyter Notebook 才能完成載入。由於 Jupyter Notebook 的限制,操作驗證無法自動化。

如果您在學習過程中遇到問題,請隨時詢問Labby。會後回饋,我們會及時為您解決問題。

導入所需的庫

在這一步驟中,我們將匯入必要的函式庫,包括 Matplotlib、NumPy 和 Matplotlib 顏色。

import matplotlib.pyplot as plt
import numpy as np
import matplotlib.colors as colors

創建綜合數據

在此步驟中,我們將建立一個由兩個駝峰(一負一正)組成的合成資料集,其中正駝峰的幅度是負駝峰的八倍。然後我們將應用 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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn