使用matplotlib,我希望能够使用pcolormesh指定确切的颜色.这是我尝试过的
import numpy as np
from matplotlib import pyplot as plt
进口顶部
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
设置了一堆假数据. Z只有0s,1s和2s(这就像我的真正问题).
plt.pcolormesh(X,Y,Z,color=[(1,1,0),(0,0,1),(1,0,1)])
使用颜色参数调用pcolormesh徒劳地尝试获得黄色,蓝色和洋红色图.事实上,我得到了默认颜色!
我的问题是:如何调用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()
标签:python,matplotlib