Matplotlib 中二維陣列的色圖

Suraj Joshi 2023年1月30日
  1. 在 Matplotlib 中使用 matplotlib.pyplot.imshow() 方法繪製 2D 陣列
  2. 在 Matplotlib 中使用 matplotlib.pyplot.pcolormesh() 方法繪製 2D 陣列
Matplotlib 中二維陣列的色圖

本教程介紹瞭如何使用 Python 中的 matplotlib.pyplot.imshow()matplotlib.pyplot.pcolormesh() 方法生成 2D 陣列的 colorplot 圖。

在 Matplotlib 中使用 matplotlib.pyplot.imshow() 方法繪製 2D 陣列

matplotlib.pyplot.imshow() 方法將一個二維陣列作為輸入,並將給定陣列渲染為光柵影象。

matplotlib.pyplot.imshow() 的語法

matplotlib.pyplot.imshow(X,
                         cmap=None,
                         norm=None,
                         aspect=None,
                         interpolation=None,
                         alpha=None,
                         vmin=None,
                         vmax=None,
                         origin=None,
                         extent=None, *,
                         filternorm=True,
                         filterrad=4.0,
                         resample=None,
                         url=None,
                         data=None,
                         **kwargs)

matplotlib.pyplot.imshow() 示例

import numpy as np
import matplotlib.pyplot as plt

X = np.random.randint(256, size=(10, 10))

fig = plt.figure(figsize=(8, 6))
plt.imshow(X)
plt.title("Plot 2D array")
plt.show()

輸出:

使用 imshow 繪製 2D 陣列 Matplotlib

它繪製使用 numpy.random.randint() 建立的大小 10*10 的 2D 陣列。預設情況下,數值是使用 viridis colormap 對映的。

我們可以在 imshow() 方法中設定 cmap 引數來改變 colormap。

import numpy as np
import matplotlib.pyplot as plt

X = np.random.randint(256, size=(10, 10))

fig = plt.figure(figsize=(8, 6))
plt.imshow(X, cmap="inferno")
plt.title("Plot 2D array")
plt.colorbar()
plt.show()

輸出:

設定 cmap 使用 imshow 繪製 2D 陣列 Matplotlib

它顯示的是帶有 inferno colormap 的二維陣列圖。我們還可以在圖的右側看到一個顏色條,它告訴我們陣列中的哪些值被對映到哪些顏色上。

在 Matplotlib 中使用 matplotlib.pyplot.pcolormesh() 方法繪製 2D 陣列

matplotlib.pyplot.pcolormesh() 函式在 Matplotlib 中建立一個偽彩色圖。它與 matplotlib.pyplot.pcolor() 函式類似。

import numpy as np
import matplotlib.pyplot as plt

X = np.random.randint(256, size=(10, 10))

fig = plt.figure(figsize=(8, 6))
plt.pcolormesh(X, cmap="plasma")
plt.title("Plot 2D array")
plt.colorbar()
plt.show()

輸出:

使用 pcolormesh 繪製 2D 陣列 Matplotlib

它繪製了使用 numpy.random.randint() 建立的大小為 10*10 的二維陣列與 plasma colormap。右邊的色條代表了分配給不同數值範圍的顏色。

作者: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn