7

使用 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一个color参数,试图得到一个黄色、蓝色和洋红色的情节。事实上,我得到了默认颜色!

彩色网格

我的问题是:如何调用pcolormesh以使第一个区域为黄色、第二个蓝色和第三个洋红色?

4

1 回答 1

8

一种方法是使用自定义颜色图:

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()

显示带有黄色、蓝色、洋红色的自定义颜色图的绘图

于 2012-11-08T18:14:31.420 回答