使用matplotlib,我希望能够使用pcolormesh指定确切的颜色.这是我尝试过的
import numpy as np
from matplotlib import pyplot as plt
Run Code Online (Sandbox Code Playgroud)
进口顶部
X = np.linspace(0,1,100)
Y = np.linspace(0,1,100)
X,Y = np.meshgrid(X,Y)
Z = (X**2 + Y**2) < 1.
Z = Z.astype(int)
Z += (X**2 + Y**2) < .5
Run Code Online (Sandbox Code Playgroud)
设置了一堆假数据.Z只有0s,1s和2s(这就像我真正的问题).
plt.pcolormesh(X,Y,Z,color=[(1,1,0),(0,0,1),(1,0,1)])
Run Code Online (Sandbox Code Playgroud)
pcolormesh用一个color参数调用徒劳地试图得到一个黄色,蓝色和洋红色的情节.事实上,我得到了默认颜色!

我的问题是:如何调用pcolormesh第一个区域为黄色,第二个区域为蓝色,第三个区域为洋红色?
一种方法是使用自定义色彩映射:
import numpy as np
from matplotlib import pyplot as plt
from matplotlib import colors as c
X = np.linspace(0,1,100)
Y = np.linspace(0,1,100)
X,Y = np.meshgrid(X,Y)
Z = (X**2 + Y**2) < 1.
Z = Z.astype(int)
Z += (X**2 + Y**2) < .5
cMap = c.ListedColormap(['y','b','m'])
plt.pcolormesh(X,Y,Z,cmap=cMap)
plt.show()
Run Code Online (Sandbox Code Playgroud)
