在資料視覺化中,顏色圖用於透過顏色來表示數值資料。然而,有時數據分佈可能是非線性的,這使得難以辨別數據的細節。在這種情況下,色彩圖標準化可用於以非線性方式將色彩圖對應到資料上,以幫助更準確地視覺化資料。 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 應用於合成資料並視覺化結果。
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中文網其他相關文章!