Matplotlib 中二維陣列的色圖

Suraj Joshi 2023年1月30日 2020年12月31日
  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。右邊的色條代表了分配給不同數值範圍的顏色。

Author: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

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

LinkedIn