每个色网格图都有一个关联的色图。为了在一张图中使用多个颜色图,因此我看到以下选项:
- 单个矩形 :不要使用pcolormesh,而是按照自己的喜好绘制单个矩形。
创建您的 自定义颜色图 ,其中合并了不同范围内的不同颜色图。例如,将0到0.4的值映射到一个颜色图的颜色,将0.4到1的值映射到另一颜色图的颜色。然后可能看起来像:
import matplotlib.pyplot as plt
import matplotlib.colors
import numpy as npx,y = np.meshgrid(range(4), range(4))
z = np.array([[0.2,.3,.95],[.5,.76,0.4],[.3,.1,.6]]).astype(float)
mask= np.array([[1,0,0],[1,0,0],[1,1,1]]).astype(float)
Z = z + maskc2 = plt.cm.Greens(np.linspace(0,1,128))
c1 = plt.cm.coolwarm(np.linspace(0,1,128))
cols = np.vstack((c1, c2))
cmap=matplotlib.colors.LinearSegmentedColormap.from_list(“q”, cols)fig, ax=plt.subplots()
ax.pcolormesh(x,y,Z, vmin=0, vmax=2, cmap=cmap)plt.show()
屏蔽 数组并绘制几个pcolormesh图。以下示例显示了这样的样子:
import matplotlib.pyplot as pltimport numpy as npimport numpy.ma as max,y = np.meshgrid(range(4), range(4))z = np.array([[1,1.3,3],[2.2,2.8,1.8],[3,1,3]]).astype(float)mask= np.array([[1,0,0],[1,0,0],[1,1,1]]).astype(bool)z1 = np.copy(z)z1[mask] = np.nanz2 = np.copy(z)z2[~mask] = np.nanfig, ax=plt.subplots()ax.pcolormesh(x,y,ma.masked_invalid(z1), vmin=1, vmax=3, cmap="coolwarm")ax.pcolormesh(x,y,ma.masked_invalid(z2), vmin=1, vmax=3, cmap="Greens")plt.show()



